Squid配置及常用命令详解

2012-6-19 14:44:58 来源:本站原创,请勿转载 浏览:1870
Squid是大家公认的一款Linux系统下优秀的代理服务器软件,发展至今它已不仅仅可以支持Linux系统,还可以运行在AIX、Digital、Unix、FreeBSD、windows等系统上,它相比Apache、Socks等代理软件来说配置相对简单灵活且支持多种缓存和多种协议,他到底是不是这样安装使用如此简单方便的代理软件呢?看看本文《Squid配置及常用命令详解》就知道了。

一、squid简介

  squid是一款Linux系统环境下比较优秀的代理服务器,由于squid安装简单,配置也简单且灵活,且支持缓存和多种协议,备受用户青睐,所以经过开发者的研发,目前squid已经不仅仅是适用于linux系统,还支持AIX、Digital Unix、FreeBSD、HP-UX、Irix、NetBSD、Nextstep、SCO、Solaris和windows系统,更好地解决了用户对它的需求。

  squid原理:Squid是一个缓存internet数据的一个软件,它接收用户的下载申请,并自动处理所下载的数据。也就是说,当一个用户想要下载一个主页时,它向Squid发出一个申请,要Squid替它下载,然后Squid 连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid把保存的备份立即传给用户,使用户觉得速度相当快。同时它还缓存DNS查寻的结果,它的访问控制清单和访问权限清单通过阻止特定的网络连接来减少潜在的Internet非法连接,可以使用这些清单来确保内部网的主机无法访问有威胁的或不适宜的站点。

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

二、squid的配置

1、squid的编译与运行:

  1)下载squid软件,下载地址:http://soft.huweishen.com/action/search.asp?key=squid。里面有很多版本可根据自己的需求下载。

  2)安装squid:可以为squid专门设置一个用户和用户组,用户目录设为/usr/local/squid,并将squid源文件放在该目录下,然后切换为squid用户,执行下面的命令开始安装:

%tar xzf squid-2.0.RELEASE-src.tar.gz
%cd /usr/local/squid/src/ squid-*.*.RELEASE /
%./configure
%make
%make install

等待安装完成,如果成功安装的话,不出意外的话会在你的squid用户目录下生成“/bin /cache /etc /log”这四个目录,下面为大家介绍一下这几个文件夹中分别通常存放什么类型的文件:

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

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

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

目录【/logs】中包含Squid的日志,比如错误日志,可以在里面查看错误原因。

  3)squid配置文件(squid.conf)的配置:

Squid.conf大家应该都知道是squid的配置文件,用户可以通过修改文件配置不同的环境,小编总结了几个比较重要的选择和大家分享下:

【http_port】设定Squid监听的端口,你最好设一个比较好记的端口号,以便在进行客户机配置时容易记住。

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

【maximum_object_size】设定Squid可以接收的最大对象的大小。Squid缺省值为4M,如果觉得太大了,你可以根据自己的需要进行设定。

【ache_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。

  4)配置好了squid,下面我们就可以运行它了,可以使用如下命令运行它:

  我们先用squid用户登录系统,然后输入命令:

  %/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常用命令详解:

1、初始化你在 squid.conf 里配置的 cache 目录

#squid/sbin/squid -z //第一次启动squid服务时必须输入此命令

如果有错误提示,请检查你的 cache目录的权限。

2、对你的squid.conf 排错,即验证 squid.conf 的语法和配置。

#squid/sbin/squid -k parse

如果squid.conf 有语法或配置错误,这里会返回提示你,如果没有返回,恭喜,可以尝试启动squid.

3、在前台启动squid,并输出启动过程。

#squid/sbin/squid -N -d1

如果有到 ready to server reques,恭喜,启动成功。

然后 ctrl + c,停止squid,并以后台运行的方式启动它。

4、启动squid在后台运行。

#squid/sbin/squid -s

这时候可以 ps -A 来查看系统进程,可以看到俩个 squid 进程。

5、停止 squid

#squid/sbin/squid -k shutdown

6、重引导修改过的 squid.conf

#squid/sbin/squid -k reconfigure

这个估计用的时候比较多,当你发现你的配置有不尽你意的时候,可以随时修改squid.conf,然后别忘记对你的 squid.conf排错,然后再执行此指令,即可让运行中squid重新按照你的squid.conf 来运行。

7、把squid添加到系统启动项

编辑 /etc/rc.d/rc.local

添加如下行: /usr/local/squid/sbin/squid -s

当然,并不是每个人都喜欢这种启动方式,你可以用你最习惯的方式;或者把它安装为服务。

8、修改cache 缓存目录的权限。

#chown -R squid:squid /home/cache

我的cache缓存目录是 /home/cache,squid执行用户和用户组是 squid,squid.

9、修改squid 日志目录的权限

#chown -R squid:squid /usr/local/squid/var/logs

这一步并不是适合每一个使用squid的用户。意为让squid有权限在该目录进行写操作.例如生成 access.log cache.log store.log

10、查看你的日志文档。

#more /usr/local/squid/var/logs/access.log | grep TCP_MEM_HIT

该指令可以看到在squid运行过程中,有那些文件被squid缓存到内存中,并返回给访问用户。

#more /usr/local/squid/var/logs/access.log | grep TCP_HIT

该指令可以看到在squid运行过程中,有那些文件被squid缓存到cache目录中,并返回给访问用户。

#more /usr/local/squid/var/logs/access.log | grep TCP_MISS

该指令可以看到在squid运行过程中,有那些文件没有被squid缓存,而是现重原始获取并返回给访问用户。

11、squid -k rotate 轮换squid的日志文件/var/log/squid,Squid代理日志文件的增长速度是惊人的,很容易占满磁盘空间导致系统不能正常工作,甚至是死机。为了解决日志文件增长太快的问题,squid采用了'轮换'的方法。在squid.conf中可以通过logfile_rotate来设置文件轮换的个数,如:

logfile_rotate 10

轮换的工作一般用crontab定时器完在周期性的日志轮换,例如每周六凌晨2:00进行日志轮换,则执行如下命令:

crontab -e

0 2 * * 6 squid -k rotate

12、Squid默认的错误提示信息为英文,对于英文不好的用户来说,实在不方便。在/etc/squid/squid.conf里添加如下:

error_directory /usr/share/squid/errors/Simplify_Chinese 即可显示中文的错误提示。

  至此对于squid的基本配置就介绍完了,其实对于初学者来说squid作为服务器代理确实是不错的选择,因为他基本不需要自己动手做过多的配置和研究,再参考squid相关资料,squid快速入门不是梦……

(0)
(0)