大家好,今天小编来为大家解答以下的问题,关于squid,squid是乌贼还是鱿鱼这个很多人还不知道,现在让我们一起来看看吧!

一、Squid基础与配置

一、Squid入门

squid,squid是乌贼还是鱿鱼

1.Squid是什么?

Squid是一种用来缓冲Internet数据的软件。它是这样实现其功能的,接受来自人们需要下载的目标(object)的请求并适当地处理这些请求。也就是说,如果一个人想下载一web页面,他请求Squid为他取得这个页面。Squid随之连接到远程服务器(比如:http://squid.nlanr.net/)并向这个页面发出请求。然后,Squid显式地聚集数据到客户端机器,而且同时复制一份。当下一次有人需要同一页面时,Squid可以简单地从磁盘中读到它,那样数据迅即就会传输到客户机上。当前的Squid可以处理HTTP,FTP,GOPHER,SSL和WAIS等协议。但它不能处理如POP,NNTP,RealAudio以及其它类型的东西。

2.Internet缓冲的一些概念

你可能会想到一些问题:缓冲有多大的用处?什么时候目标(object)应该或者不应该被缓冲?例如,缓冲信用卡号码是完全不适合的,脚本文件的执行结果在远程服务器端,站点经常更新(象www.cnn.com)或者甚至站点不允许缓冲,这些情况也都是不适合缓冲的。

Squid处理各种情况是不错的(当然,这需要远程站点按标准形式工作)。

squid,squid是乌贼还是鱿鱼

可执行的cgi-bin脚本文件不被缓冲,返回正确页眉的页面是在一段限制了的时间内被缓冲,而且你可以规定特殊的规则以确定什么是可以或不可以被缓冲的,还有缓冲的时间为多长。

谈到缓冲的用处有多大,这要看Internet的容量大小,各有不同。对于小型的缓冲区(几转磁盘空间)来说,返回值非常高(达到25%)。这个空间缓冲经常访问的站点,如netscape,cnn和其它一些类似情况的站点。如果你增加一倍缓冲的磁盘空间,但你不会成倍增加你的命中率。这是因为你开始缓冲网络中剩余部分时,这些通常时很大的而且很少被访问。一个非常大的高速缓冲区,有20转左右,可能返回值仍小于50%,除非你对保存数据的时间长短经常改变(一般地你不要分配20转的磁盘空间,因为页面很快就会过时,应该被删除掉)。

我们在这里说的目标(object)指的是可保存的web页面或其它类似的可下载页面(ftp文件或目录内容也称为目标(object))。

3.Squid运行在什么系统上?

Squid可运行在大多数Unix和OS/2版本的系统之上,已知的可工作的有:

AIX,Digital Unix,FreeBSD,HP-UX,Irix,Linux,NetBSD,Nextstep,SCO,Solaris

二、编译安装Squid

1.Squid的未编译版本

我不能保证你能发现所有的Squid的未编译版本。在ftp:squid.nlanr.net上你可以找到一些未编译的版本,尽管它们可能不是最新的版本。

Squid一般很容易编译,这是因为它本身可以自动配置。唯一真正的问题是是否在你的机器上有一个编译器。这可能发生在:你购买了商业OS但是它未包括标准的开发选项。你可能考虑在这种情况下装一个GNU的编译器,如果你在/usr/include下有必需的文件的话。你另外一个选择可能是请求别人的帮助。你也许需要查看“tracker database”以找到在你附近运行Squid的某人。假定他们有适合的硬件,他们很可能会帮助你的。

1.开始编译之前

运行Squid的最好方法(在我看来)是创建一个特定的用户和组来运行它。我用相同的名字创建了一个Squid用户和一个Squid组,并设置用户的home目录为/usr/local/squid。然后我用su转到Squid用户,这样文件就都由Squid以及Squid组所有(Squid用户主组必须为Squid)。随后我下载Squid源文件到/usr/local/squid/src并解包。

这可能不是最好的安装Squid到你的系统上的方法,但是,如果多个用户将使用squid,你可以把他们都放在Squid组中。(当然,如果你不理解我所说的,尽可以用你自己的名义去安装,不要以root方式,否则,你将给你的机器带来安全上的危险。)

2.获得源码

Squid的源始站点是squid.nlanr.net。这里还有许多其它的镜像站点,你可以考虑从你本地的镜像站点获得它,或者在archie服务器上搜索。一旦你已经下载了(一般放在/usr/local/squid/src/下),你可以用以下命令解压:

  gzip-cd squid-tar.gz-fil| tar xv或者 tar zxvf squid-tar.gz-fil

  这将创建类似于以下行的目录:/usr/local/squid/src/squid-1.1.13/(依版本而定)。

3.编译Squid

以下是编译Squid的一般指令。你可能还要做其它的事以编译Squid到你的系统上。通常你可以运行一个配置脚本文件,它指明了你的系统设置和你机器上的标题文件。这样,在解压和解包文件后。cd到/usr/local/squid/src/squid-version/下并输入:

  ./configure

这里假定你准备安装Squid到/usr/local/squid下。你也可以用下面的方法修改你的安装目录:

  ./configure-prefix=/some/other/directory

然后你可能要敲入:make以及如果编译一切正常时,输入make install。这将生成在后面将要描述的目录并安装文件到目录下。

三、Squid的基本配置

1.目录结构

Squid通常创建几个目录。它们一般如下:

  /usr/local/squid

  /bin

  /cache

  /etc

  /logs/

  /src(这是我们早些时候创建的)

  /bin包括Squid本身的程序,以及其它程序如ftpget,它可以被Squid用来执行各种功能。

  /cache/目录是实际缓冲数据的存放区。你可能要考虑把剩余缓冲放到不同分区去,或甚至是不同的磁盘。它包含的目录如以下行的形式:/00//01//02/和/03/这些又包括更多的子目录,最终是缓冲的实际数据。存储数据在多个目录下意味着从大的缓冲区取数据仍然很快,因为你的操作系统要读一个包含10000个文件的目录会需要很长的时间。

  /etc/包含squid.conf文件,它是唯一的Squid配置文件。

  /logs/目录可能会很大,特别是如果你包含同属时,它们会查询你每一次连接,这可以使你的log文件双倍增加。注意在cache目录下也有一个/log/文件,但是你不能删除或移动它。它是上面讨论的/usr/local/squid/cache/目录的一个索引。(这与IE的cache有些相似。)

  /src/一般包括你运行Squid版本的源文件。

2.基本配置

所有的Squid配置集中到一个文件----squid.conf。下面将详细讨论仅作为一个缓冲代理服务器的Squid的配置,而不是把它作为一个http加速器。

以下是一个最基本的配置文件:

  #squid.conf- a very basic config file for squid

#Turn logging to it's lowest level

  debug_options ALL,1

#defines a group(or Access Control List) that includes all IP

  #addresses

  acl all src 0.0.0.0/0.0.0.0

#allow all sites to use connect to us via HTTP

  http_access allow all

#allow all sites to use us as a sibling

  icp_access allow all

#test the following sites to check that we are connected

  dns_testnames internic.net usc.edu cs.colorado.edu mit.edu yale.edu

#run as the squid user

  cache_effective_user squid squid

  #otherwise, you can uncomment the below line and comment the one out.

  # this will run as use"nobody" with the group"nogrtoup"

  cache_effective_user nobody nogroup

这个配置允许所有的人访问缓冲区,并创建一个100M的缓冲区,使用8M的内存,保持最小型的logs,而且存储所有文件到默认区域,这一般指的是所有文件将以Squid用户,Squid组的名义存储到“/usr/local/squid/cache”中。所有客户请求将来自于3128端口,并且所有“内部缓冲(inter-cache)”流量将走UDP端口3130。注意这个配置文件允许所有人访问你的缓冲机器,这可能不是你所希望的,但是至少它可以正常工作。

3.运行Squid

Squid由一个脚本正常运行,这个脚本在它的进程死掉后重启Squid。这里有脚本的两种版本:/usr/local/squid/bin/RunCache和/usr/local/squid/bin/RunAccel。

  RunCache脚本一般在前台运行,所以启动Squid,输入以下内容:

  %/usr/local/squid/bin/RunCache%

  然后用以下命令查看主Squid log文件/usr/local/squid/logs/cache.log

  % more/usr/local/squid/logs/cache.log

你将看到Squid启动的相关信息,如下行所示:

  97/02/24 19:34:52| Starting Squid Cache version 1.1.10 for i586-pc-linux-gnu...

  97/02/24 19:34:52| With 256 file descriptors available

  97/02/24 19:34:52| Initializing IP Cache...

  如果你没有看见任何关于FATAL错误的信息,Squid现在就可以很高兴地在你的机器上运行了。

下面将配置你的浏览器,你可以好好地试一下哦!

4.客户端软件的基本配置

以下是针对浏览器的基本配置:

Netscape(4.5以上版本):

  从Edit菜单项中选择Preferences项。在Advanced中Proxies页,点击按钮进入Proxy配置手册,然后再点击View按钮。对每项你的Squid服务器支持的协议项(默认有HTTP,FTP和gopher等)中填入Squid服务器的主机名或IP地址,同时在Port栏中填入Squid服务器的HTTP端口号(默认为3128)。对你的Squid不支持的协议,可以让这些栏空着。

IE(5.0以上中文版本):

  在工具菜单项中选择Internet选项,然后点击连接页,再按局域网设置按钮选择使用代理服务器选项,进入高级项目编辑。然后可以看到与Netscape代理服务器设置类似的界面,按照前面所述的方法分别填入相应项即可。

一般Unix下配置:

如果你使用可以允许你访问web的Unix程序(包括wget,lynx和mosaic等),你可以设置shell变量,通过这些变量可以配置好代理。

如果你使用的shell是tcsh或csh,命令如下:

  % setenv http_proxy

  % setenv gopher_proxy

  % setenv ftp_proxy

现在你就可以使用你的浏览器与缓冲连接以下载页面了。为了检查通过缓冲是否工作正常,可以查看/usr/local/squid/logs/access.log文件的内容,使用命令如下:more/usr/local/squid/logs/access.log。你可以看到所有你进行的访问信息都显示在该文件中。

二、squid是什么意思

squid意思是:乌贼。

squid:【n.】(枪)乌贼,鱿鱼,柔鱼,英镑;【vi.】降落伞因余气压力而拉长,呈枪乌贼状。

同义词:mollusc;音标:【skwɪd】。

例句

1.The seals feed mainly on fish and squid.

海豹主要以鱼和乌贼为食。

2.These squids are bigger than those I bought last week.

这些鱿鱼比我上周买的大。

3.The mating rituals of the cubera snappers have nothing, though, on squid.

古布拉金线鱼的交配仪式没有什么看头,但鱿鱼就不同。

4.I baited up with fresh squid.

我用新鲜乌贼做饵。

5.Squid, also weigh squid, calamary.

鱿鱼,也称柔鱼、枪乌贼。

6.Bill Pardy:And that makes you look like a squid?

这种病会让你看上去像个鱿鱼?

三、Squid使用方法详解

1.Squid简介

Squid是一个缓存internet数据的一个软件,它接收用户的下载申请,并自动处理所下载的数据。也就是说,当一个用户象要下载一个主页时,它向Squid发出一个申请,要Squid替它下载,然后Squid连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid把保存的备份立即传给用户,使用户觉得速度相当快。目前,Squid可以代理HTTP, FTP, GOPHER, SSL和 WAIS协议,暂不能代理POP, NNTP等协议。不过,已经有人开始修改Squid,相信不久的将来,Squid能够代理这些协议。

Squid能够缓存任何数据吗?不是的。象缓存信用卡帐号、可以远方执行的scripts、经常变换的主页等是不合适的也是不安全的。Squid可以自动的进行处理,你也可以根据自己的需要设置Squid,使之过滤掉你不想要的东西。

Squid可以工作在很多的操作系统中,如AIX, Digital Unix, FreeBSD, HP-UX, Irix, Linux, NetBSD, Nextstep, SCO, Solaris,OS/2等,也有不少人在其他操作系统中重新编译过Squid。

Squid对硬件的要求是内存一定要大,不应小于128M,硬盘转速越快越好,最好使用服务器专用SCSI硬盘,处理器要求不高,400MH以上既可。

2. Squid的编译和运行

其实现在的Linux发行套件中基本都有已经编译好的Squid,你所作的就是安装它既可。如果你手头没有现成的编译好的Squid或想使用最新的版本,去ftp:squid.nlanr.net下载一份,自己编译。

Squid的编译是非常简单的,因为它基本上是自己配置自己。最容易出现的问题是你的系统上没有合适的编译器,这可以通过安装相应的编译器解决。如果出现其他问题,你可以问一下有经验的用户或到相应的邮件列表寻找帮助。

编译Squid之前,最好建一个专门运行Squid的用户和组。我就在自己的服务器上建了一个名为squid的用户和组,用户目录设为/usr/local/squid。然后su为用户squid并从squid.nlanr.net下载Squid的源文件到目录/usr/local/squid/src中,用如下命令进行解压:

%tar xzf squid-2.0.RELEASE-src.tar.gz

%cd/usr/local/squid/src/ squid-*.*.RELEASE/

%./configure

%make

%make install

第一个命令在目录/usr/local/squid/src中产生一个新的子目录/squid-*.*.RELEASE/。命令./configure会自动查询你的系统配置情况以及你系统中使用的头文件。不加参数的./configure会把Squid安装在目录/usr/local/squid中,如果你想使用其他目录,用如下命令./configure--prefix=/some/other/directory,这会把Squid安装在目录/some/other/directory中。make命令编译Squid,make install命令安装Squid。

不出意外的话,目录/usr/local/squid中会出现如下目录:

/bin

/cache

/etc

/logs/

/src(自己创建的)

目录/bin中含有Squid可执行程序,包括Squid本身,ftpget等。

目录/cache包含Squid缓存的数据,其中包含象/00//01//02/以及/03/这样的目录,这些目录中还有子目录,因为目录多了比在一个目录成千上万的文件中寻找一个文件更容易,速度更快。

目录/etc中包含Squid的唯一的配置文件squid.conf。

目录/logs中包含Squid的日志。

3. squid.conf文件的配置

在安装Squid后,在目录/usr/local/squid/etc中会自动产生一个样本squid.conf文件,文件中对每一个选项都有详细的说明,用户可以通过修改该文件以满足不同的需要。

总的来说,有如下几个重要选项:

?http_port:设定Squid****的端口,你最好设一个比较好记的端口号,以便在进行客户机配置时容易记住。我的机器上端口号设的是8080。缺省为3128。

?cache_mem:设定Squid占用的物理内存,根据我的经验,cache_mem的大小不应超过你的服务器物理内存的三分之一,否则将会影响机器的总体性能。

?maximum_object_size:设定Squid可以接收的最大对象的大小。Squid缺省值为4M,我自己入认为太大,你可以根据自己的需要进行设定。

?cache_dir:设定缓存的位置、大小。一般看起来形式如下“cache_dir/usr/local/squid/cache 100 16 256”。/usr/local/squid/cache代表缓存的位置;100代表缓存最大为100M;16和256代表一级和二级目录数。

?cache_effective_user:设定使用缓存的有效用户。缺省为用户nobody,如果你的系统中没有用户nobody,最好建一个或以非root用户运行Squid。

下面我给出一个最简单的squid.conf文件:

#squid.conf- a very basic config file for squid

#Turn logging to its lowest level

debug_options ALL,1

#defines a group(or Access Control List) that includes all IP addresses

acl all src 0.0.0.0/0.0.0.0

#define RAM used

cache_mem 32M

#defines the cache size

cache_dir/usr/local/squid/cache 100 16 256

#allow all sites to use connect to us via HTTP

http_access allow all

#allow all sites to use us as a sibling

icp_access allow all

#test the following sites to check that we are connected

dns_testnames internic.net usc.edu cs.colorado.edu mit.edu yale.edu

#run as the squid user

cache_effective_user squid squid

这个配置文件允许所有人使用Squid,创建了100M缓存,使用32M内存,在缺省位置"/usr/local/squid/cache"缓存数据,所有缓存数据以组squid和用户squid身份保存,端口为3128。虽然这个配置很不安全,但是它已经能使用了。

4.运行Squid

首先以root身份登陆。运行如下命令:

%/usr/local/squid/bin/squid?z

该命令会产生Squid所有的缓存目录。

如果你想前台执行Squid,接着执行命令:

%/usr/local/squid/bin/squid-NCd1

该命令正式启动Squid。如果一切正常,你会看到一行输出

Ready to serve requests.

如果想后台运行Squid,把它做为一个精灵进程,执行命令:

%/usr/local/squid/bin/squid

观察Squid是否运行使用命令:

% squid-k check

输出会告诉你Squid的当前状态。

好了,文章先写到这里,其实这里介绍的都是最基本的东西,Squid有好多高级的功能,如做WEB服务器的高速缓存,做二级代理服务器,做为防火墙,以及怎样设定过滤规则等,这里就不详述了,如果有机会再奉献给大家。

感谢您花时间阅读本文!我们希望通过对squid的问题进行探讨,为您提供了一些有用的见解和解决方案。如果您需要更多帮助或者有其他疑问,请不要犹豫与我们联系。