当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > Squid使用方法详解

Unix/Linux
Linux 适合你吗?(一)
如何在windows9x下访问linux分区
Linux X Window应用问答(上)
Linux X Window应用问答(下)
Linux的认识存在的一些误区
给你的Linux再加一把锁
认识Linux
Linux环境下使用GFS文件系统
Linux下的压缩文件剖析
Linux的常用网络命令
四种实时操作系统的分析比较
Linux:文件命令精通指南
Linux 系统命令精通指南
教你一招 Linux常见紧急情况处理方法
Linux系统中防火墙的框架分析
Linux 管理员手册(9)--Keeping Time
Linux 管理员手册(8)--备份
Linux管理员手册(7)--管理用户帐户
Linux管理员手册(6)--登录和注销
Linux管理员手册(5)--引导和关机

Unix/Linux 中的 Squid使用方法详解


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-15   浏览: 42 ::
收藏到网摘: n/a

1.Squid 简介

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

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

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

2. Squid的编译和运行

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

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

  %./configure

  %make

  %make install

  不出意外的话,目录/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服务器的高速缓存,做二级代理服务器,做为防火墙,以及怎样设定过滤规则等,这里就不详述了,如果有机会再奉献给大家。