使用过一段时间的SQUID代理,感觉虽然挺好用的单是过程还是挺曲折的,这个期间也在网络到处搜索了很多关于SQUID的说明文档,和教程。但是显然的还是有那么几个问题,(可能是我个人的问题^_^)
1.版本太少,看来看去就那么几个版本所谓天下文章一大炒,当然这是排在GOOGLE前面的一些资料,也是最容易获得的,也可以满足一般的需要
2.就是要么基础要么太难:看见过一篇难的讲SQUID的源代码(开发者之一)
直到我在图书管发现了一篇算是讲的很好的SQUID的文章,图书馆讲SQUID的 书也看过不少的,但是觉得 讲的还是略微的浅了。知道看见这篇若干年前的书,SQUID确实讲的很好,好东西不敢独吞,拿出来和大家共享。----<<LINUX网络操作经典-高手究极篇>>
如果侵犯作者的版权(我的本意是学习交流的),请作者和我联系,我将删除之
PS:这确实是一本不错的书,讲的几个东西,我个人觉得都还是不错的。
SQUID应用程序文件:
/usr/sbin/squid
;守护进程主程序
/usr/sbin/client
;统计并显示摘要表的内容
/usr/lib/squid/cachemgr.cgi ;可通过WEB查看SQUID运行时的CGI程序
/usr/lib/squid/dnsserver;辅助SQUID处理域名解析
SQUID默认的缓冲目录结构并不重要,因为一般都重新规划缓冲目录,必须注意的是SQUID的记录文件,这些记录文件被默认放在了/var/log/squid目录下面
/var/log/squid
|--access.log;记录客户端所有请求的记录文件
|--store.log;存储缓冲对象的状态及记录文件
|--cache.log;cache的启动及各类状态文件的记录
(我个人比较喜欢分析第一个日志文件,每隔一个礼拜通过这个日志文件产生一个最受欢迎的网站)有兴趣的朋友可以来信所要脚本文件
Squid传统安装的文件结构
用传统的COMPILE方式按章Squid时,SQUID呈现如下的目录结构
/usr/local/squid
|--bin;放置SQUID相关的可执行文件
| |--RunAccel ;放置SQUID可执行文件
| |__RunCache
| |--cachemgr.cgi;查看SQUID实时运行的程序
| |--Client;统计并显示摘要表的内容
| |--dnsserver;辅助squid进行域名解析
| |--squid;squid demon 主程序
| ---unlinkd
|--etc ;放置SQUID相关配置文件
| |--errors
| |--icons
| |--mib.txt;SQUID-mib定义文件
| |--mime.conf;定义SQUID识别的MIME TYPE
| |--mime.conf.default;使用默认
| |--squid.conf;配置文件
| |--squid.conf.deault;使用默认
|--logs
|--access.log
|--store.log
|--cache.log
squid的初级配置
RMP格式的SQUID配置文件在/ETC/SQUID/SQUID.CONF文件里,一般来说,只要稍微调整几个设置项目,并可以发挥出SQUID的强大效能。下面的修改都是对这个陪着文件所做一些调整。
1.http_port 命令
SQUID默认传输端口是3128可以通过配置项目http_port来定义,例如如果要将端口配置为8080,那么可以这样来配置
Http_port 8080
2.icp_port命令
SQUID默认与其他的SQUID proxy通讯的端口是3130,如果你要对默认的端口做修改,那么可以如下配置
icp_port 3200
3.cache_peer命令
如果要设置父级的代理服务器,例如proxy.test.edu.cn那么可以这样配置
在#cache_peer hostname type 3128 3130 之下加入
cache_peer proxy.test.edu.cn parent 3128 3130 no-query no-netdb-exchange
如果要设置同级的代理服务器,如:192.168.1.41 192.168.1.42则可以这样来配置
cache_peer 192.168.1.41 sibling 3128 3130 proxy-only
....
注意目前各单位施行代理服务器分级管理,设置父级代理服务器,还必须取得上层单位的同意
说明:
(1)命令cache_peer的定义格式是:
cache_peer hostname type 3128 3130
hostname 是用来指定获取缓冲的PROXY主机的名字
type 是PROXY主机的类型,有以上PARENT SIBLING两种
3128:HTTP_PORT
3130:ICP_PORT
(2)附加配置选项(注意应为小写,配置时)
NO-QUERY:不做查询操作,直接获取数据
NO-NETDB-EXCHANGE:代理服务器之间不交互信息
NO-DIGEST:代理服务器之间不做摘要表查询,直接用ICP协议沟通(同级代理)
PROXY-ONLY:直接获取对方缓冲,转交给代理服务器的客户端,而不存入本地
ROUND-ROBIN:如果设置数部上层服务器,那么轮流查询父级服务器
LOGIN=USER:PASSWD:要求对方做帐号及密码验证,例如
cache_peer 192.168.1.41 sibling 3128 3130 login=kao:123456
4 cache_mem命令
SQUID默认运行本代理服务器的高速缓存内存空间为8MB,而默认存放缓冲数据的内存空间是100MB,当然这可能无法满足您的要求,为了加快您的服务器处理速率,可以修改这些配置,例如
cache_mem 92mb
说明:
(1)cache_mem后使用的内存数值,默认是以BYTE为单位,例如64kb=65536,也可以使用KB,MB,GB为单位
(2)cache_mem后设置的内存大小,应该约为实际内存的1/3
(3)如果本机只做代理服务器,则CACHE_MEM可以提升到本机内存的1/2-3/4
5 cache_dir命令
修改玩CACHE_MEM定义后,接着用cache_dir命令重新定义缓冲区目录位置,及缓冲目录的大小,用法如下:
#cache_dir type directory-name mBytes level-1 leverl2
在#ufs/var/spool/squid 100 16256之下加入如下的配置
cache_dir ufs /cache1 2048 128 256
说明:
(1)UFS栏:设置缓冲存储的系统类型,这是2.3版本以后才有的新参数,缓冲类型有UFS,ASYNCUFS两种,一般都是用ufs,asyncufs用于异步的IO传输,在LINUX 或者SOLARIS系统上使用ASYNCUFS选项相当危险。
(2)/CACHE1栏:设置缓冲的目录的路径
(3)2048栏:设置缓冲的空间大小默认单位是MB
(4)128栏:第一层的缓冲目录数,默认是16
(5)256栏:第二层的缓冲目录数,默认是256,即每一个一层的缓冲的目录下面有256个缓冲目录
SQUID的默认缓冲空间在/VAR/SPOOL/SQUID目录下,如果想增加缓冲目录,请先参考这一节规划缓冲目录,再设置如下
cache_dir ufs /cache1 4096 64 128
cache_dir ufs /cache2 4096 64 128
cache_dir ufs /cache3 4096 64 128
cache_dir ufs /cache4 4096 64 128
注意:
如果只有一块硬盘,最好分割一到数块独立的分区来做缓冲空间,如果有两个硬盘,那么每一块最好都分割数块分区来做缓冲空间,这样可以提高SQUID的存取效率
SQUID的大致配置如此,不过不同的版本可能有所差异,另外为了 拒绝客户端存取代理服务器的默认值为拒绝获取缓冲数据,应该要加入:
#http_access deny all;关闭拒绝获取CACHE数据
详细的存取控制方法,参考下面的章节