安装squid 3.0
可以从SQUID站点www.squid-cache.org获取该软件的源代码安装包,包括gz和bz2两种压缩方式。也可以使用linux的发行版,如Red Hat提供的RPM包。
解压缩包
[root@demo squid-3.0.STABLE9]# tar zxvf squid-3.0.STABLE9.tar.gz
配置编译
最后执行make和make install两条命令,将源代码编译为可执行文件,并拷贝到指定位置。
配置命令configure有很多选项,如果不清楚可先用“-help”查看。通常情况下,用到的选项有以下几个:
--prefix=/usr/local/squid
#指定SQUID的安装位置,如果只指定这一选项,那么该目录下会有bin、sbin、man、conf等目录,而主要的配置文件此时在conf子目录中。为便于管理,最好用参数--sysconfdir=/etc把这个文件位置配置为/etc。
--enable-storeio=ufs,null
#使用的文件系统通常是默认的ufs,不过如果想要做一个不缓存任何文件的代理服务器,就需要加上null文件系统。
--enable-arp-acl
#允许基于mac地址的存取过滤。这样可以在规则设置中直接通过客户端的MAC地址进行管理,防止客户使用IP欺骗。
--enable-err-languages="Simplify_Chinese" #支持的错误语言
--enable-default-err-languages="Simplify_Chinese" #指定默认的错误语言
#上面两个选项告诉SQUID编入并使用简体中文错误信息。
--enable-Linux-netfilter
#允许使用Linux的透明代理功能。
--enable-linux-tproxy
#3.0新加没有编译安装--enable-linux-tproxy日志报错
/usr/local/squid/var/logs/cache.log
2009/10/22 13:21:34| WARNING: transparent proxying not supported
2009/10/22 13:21:35| WARNING: transparent proxying not supported
--enable-underscore
#允许解析的URL中出现下划线,因为默认情况下SQUID会认为带下划线的URL是非法的,并拒绝访问该地址。
--enable-snmp
#允许snmp协议支持(如用mrtg进行流量监控等)
--enable-basic-auth-helpers="NCSA"
#允许带密码验证,NCSA 风格的用户名和密码档
--enable-async-io=20
#采用同步io提高性能,负载高可设大点
--disable-icmp
#禁止icmp协议代理(默认不允许)
--enable-delay-pools
#允许延迟限止带宽
--enable-cache-digests
#允许缓存摘要,可以加快请求缓冲内容的速度(集群用)
--disable-ident-lookups
#禁止使用RFC931识别
--enable-epoll
#支持epoll的IO模式,2.6以上内核才具有
添加用户和组
[root@rhel5 ~]# groupadd squid
[root@rhel5 ~]# useradd squid -g squid -s /sbin/nologin
建立相应目录
改变目录的所有者
建立相关文件
修改squid.conf文件
[root@demo etc]# more squid.conf
http_port 192.168.66.253:3128 transparent
visible_hostname No1.proxy
cache_mgr liuxx@unxx.com
cache_dir ufs /usr/local/squid/var/cache 512 16 256
cache_mem 32 MB
cache_swap_low 90
cache_swap_high 95
access_log /usr/local/squid/var/logs/access.log squid
cache_log /usr/local/squid/var/logs/cache.log
cache_store_log /usr/local/squid/var/logs/store.log
pid_filename /usr/local/squid/var/logs/squid.pid
maximum_object_size 4096 KB
hierarchy_stoplist cgi-bin ?
hierarchy_stoplist -i ^https: ?
acl QUERY urlpath_regex -i cgi-bin ? .asp .php .jsp .cgi
acl QUERY urlpath_regex cgi-bin .php .cgi .avi .wmv .rm .ram .mpg .mpeg .zip .exe
cache deny QUERY
acl denyssl urlpath_regex -i ^https:
no_cache deny QUERY
no_cache deny denyssl
ipcache_size 1024
ipcache_low 90
ipcache_high 95
fqdncache_size 1024
dns_nameservers 202.106.0.20
cache_effective_user squid squid
acl allow_lan src 192.168.66.0/24
acl badurl url_regex "/usr/local/squid/badurl.txt"
acl list1 src 192.186.66.168
acl kaixin dstdomain .kaixin001.com
acl worktime time 9:00-18:00
http_access deny badurl
http_access deny list1
http_access deny kaixin
http_access deny !worktime
http_access allow allow_lan
[root@rhel5 etc]# /usr/local/squid/sbin/squid -k parse
判断配置文件语法是否有问题,可以根据这个测试命令用来验证squid.conf的语法和配置
[root@rhel5 etc]# /usr/local/squid/sbin/squid -zX
用来Creating Swap Directories
运行停止squid:
[root@rhel5 etc]#/usr/local/squid/sbin/squid -NCd1 #前台运行(显示很多运行日志)
[root@rhel5 etc]#/usr/local/squid/sbin/squid #直接运行
[root@rhel5 etc]#/usr/local/squid/bin/RunCache & #不间断运行
[root@ rhel5 etc]# /usr/local/squid/sbin/squid -k shutdown #停止
监控缓冲日志:
[root@rhel5 etc]#tail -f /usr/local/squid/var/logs/access.log
轮转日志:
Squid -k rotate
Squid 不会自己轮转日志,最好的办法是在crontab里自动执行。例如:
0 0 * * * /usr/local/squid/sbin/squid –k rotate