1.下载源代码并解压
下载squid-3.0.STABLE18.tar.gz到/opt/squid目录下,并解压
cd /opt/squid
wget http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE18.tar.gz
tar -zxvf squid-3.0.STABLE18.tar.gz
2.调整内核(此步并非必要)
squid在高负载下,需要大量的内核资源,特别是,需要对系统配置比正常情况更高的文件描述符和缓存。所以最好在编译squid之前先增加文件描述限制符的大小。
文件描述符是一个简单的整数,用以标明进程所打开的文件和socket,系统会对每个进程打开的文件数强加一个限制,对于squid文件描述符的限制可能会极大的影响性能。当squid用完所有的文件描述符后,它不能接收用户新的连接。
RHEL 5.0可以用默认的。如果要修改,则:
vi /proc/sys/fs/file-max
3.安装squid
cd squid-3.0.STABLE18
./configure --prefix=/opt/netgw/squid3 --enable-gnuregex --enable-async-io=20 --enable-icmp --enable-linux-netfilter --enable-kill-parent-hack --enable-snmp --disable-ident-lookups --enable-cache-digests --enable-arp-acl --enable-err-language="Simplify_Chinese"--enable-default-err-languages="Simplify_Chinese" --enable-poll --enable-linux-netfilter --enable-underscore
make
make install
安装结束。
4.configure脚本
squid在开始编译之前使用./configure脚本来了解操作系统信息。
cd /opt/squid/squid-3.0.STABLE18下用./configure --help可以查看所有的选项列表,有一些是squid专有的,有一些是通用的脚本。下面介绍几个最重要的。
--prefix=/opt/netgw/squid 决定你的squid安装在哪
--enable-gnuregex 在访问控制列表和其他配置指令里,使用正则表达式作为匹配机 制。
--enable-async-io=20 异步I/O,参数20为squid使用的线程数量
--enable-icmp squid能够利用ICMP消息来确定回环时间尺寸
--enable-linux-netfilter netfilter是linux内核的包过滤器的名字
--enable-snmp 编译所有的SNMP简单网络管理协议相关代码
--disable-ident-lookups ident是一个简单的协议允许服务器利用客户端的特殊TCP连接来发现用户
--enable-cache-digests cache消化是ICP的另一个替代
--enable-arp-acl arp访问控制
--enable-err-language="Simplify_Chinese" 错误报告消息语言
--enable-default-err-languages="Simplify_Chinese" 设置error_directory默认中文
--enable-underscore 选项控制squid针对主机名里下划线的行为
5.其他参考
(1)./configure --prefix=/usr/local/squid --sysconfdir=/etc/squid --bindir=/usr/bin --sbindir=/usr/sbin --mandir=/usr/share/man --enable-gnuregex --enable-carp --enable-async-io=80 --enable-removal-policies=heap,lru --enable-icmp --enable-delay-pools --enable-useragent-log --enable-referer-log --enable-kill-parent-hack --enable-snmp --enable-arp-acl --enable-htcp --enable-cache-digests --enable-default-err-language=Simplify_Chinese --enable-err-languages="Simplify_Chinese" --enable-poll --enable-linux-netfilter --disable-ident-lookups --enable-underscores --enable-auth="basic" --enable-basic-auth-helpers="NCSA" --enable-external-acl-helpers="ip_user" --enable-x-accelerator-vary
(2)./configure --prefix=/opt/netgw/squid3 --enable-gnuregex --enable-async-io=20 --enable-icmp --enable-linux-netfilter --enable-kill-parent-hack --enable-snmp --disable-ident-lookups --enable-cache-digests --enable-arp-acl --enable-err-language="Simplify_Chinese"--enable-default-err-languages="Simplify_Chinese" --enable-poll --enable-linux-netfilter --enable-underscore
(3)./configure --prefix=/usr --bindir=/usr/sbin --libexecdir=/usr/lib/squid --localstatedir=/var --sysconfdir=/etc/squid --mandir=/usr/share/man --enable-async-io=20 --disable-icmp --disable-delay-pools --disable-mem-gen-trace --disable-useragent-log --enable-kill-parent-hack --disable-arp-acl --enable-epoll --disable-ident-lookups
./configure --prefix=/usr/local/squid \ #指定squid安装目录
--mandir=/usr/share/man \ #指定man的安装目录
--enable-async-io=20 \ #采用同步io提高性能,负载高可设大点
--disable-icmp \ #禁止icmp协议代理(默认不允许)
--enable-delay-pools \ #允许延迟限止带宽
--enable-cache-digests \ #允许缓存摘要,可以加快请求缓冲内容的速度(集群用)
--enable-snmp \ #允许snmp协议支持(如用mrtg进行流量监控等)
--disable-ident-lookups \ #禁止使用RFC931识别
--enable-epoll \ #支持epoll的IO模式,2.6以上内核才具有
--enable-basic-auth-helpers="NCSA" #允许带密码验证,NCSA 风格的用户名和密码档
--enable-linux-netfilter #允许透明代理
--enable-arp-acl #允许基于MAC地址的存取过滤
--enable-err-language="Simplify_Chinese" #支持的错误语言
--enable-default-err-language="Simplify_Chinese" #指定默认的错误语言