squid 3.0配置笔记

发布时间:2020-06-28编辑:脚本学堂
安装squid 3.0 可以从SQUID站点www.squid-cache.org获取该软件的源代码安装包,包括gz和bz2两种压缩方式。也可以使用Linux的发行版,如Red Hat提供的RPM包。

安装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

配置编译

复制代码 代码如下:
[root@demo squid-3.0.STABLE9]#./configure --prefix=/usr/local/squid
--enable-storeio=ufs,null
--enable-arp-acl
--enable-err-languages="Simplify_Chinese"
--enable-default-err-language="Simplify_Chinese"
--enable-Linux-netfilter
--enable-linux-tproxy
--enable-underscore
--enable-snmp
--enable-basic-auth-helpers="NCSA"
--enable-async-io=20
--disable-icmp
--enable-delay-pools
--enable-cache-digests
--disable-ident-lookups
--enable-epoll
 

最后执行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

建立相应目录
 

复制代码 代码如下:
[root@rhel5 ~]# mkdir /usr/local/squid/cache

改变目录的所有者
 

复制代码 代码如下:
[root@rhel5 ~]# chown -R squid:squid /usr/local/squid/cache
[root@rhel5 ~]# chown -R squid:squid /usr/local/squid/var
[root@rhel5 ~]# chown -R squid:squid /usr/local/squid/var/logs

建立相关文件
 

复制代码 代码如下:
[root@rhel5 ~]#cd /usr/local/squid/var/
[root@rhel5 ~]#mkdir cache
[root@rhel5 ~]#cd logs
[root@rhel5 ~]#touch access.log cache.log store.log
[root@rhel5 ~]#chmod 755 *
[root@rhel5 ~]#chown squid:squid *

修改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