1:减压文件:# tar xzvf /some/where/squid-2.5.STABLE4-src.tar.gz
2:调整内核:(我使用的是linux)
首先编辑/usr/include/bits/typesizes.h 文件,改变__FD_SETSIZE 的值:#define _ _FD_SETSIZE 32768
使用命令增加内核文件描述符的限制:# echo 32768 > /proc/sys/fs/file-max
运行#sh
最后,增加进程文件描述符的限制,在你即将编译squid 的同一个shell 里执行:sh# ulimit -Hn 32768
该命令必须以root 运行,仅仅运行在bash shell。不必重启机器。
3:编译、安装squid
编译./configure设置:./configure --prefix=/usr/local/squid
--enable-removal-policies="heap,lru"
--enable-storeio="aufs,coss,diskd,null,ufs"
--enable-delay-pools
--enable-linux-netfilter
--enable-useragent-log
--enable-referer-log
--enable-truncate
--enable-underscores
--enable-basic-auth-helpers="NCSA"
--enable-err-language="Simplify_Chinese"
--enable-default-err-language="Simplify_Chinese"
--enable-stacktrace
--enable-auth="basic"
--disable-dependency-tracking
--disable-internal-dns
--with-pthreads
编译:make
安装:make install
4:创建squid登陆ID(useradd usrname password),创建缓存目录,赋予squid的缓存目录的权限和squid 的logs的权限(chown squid:squid /usr/local/squid/var/logs)
5:设置配置文件,和系统hosts文件
6:创建缓存目录:
# cd /usr/local/squid/sbin
#./squid –z ( 出现Creating Swap Directories提示,表示建立成功)
7:调试运行:
#./squid –NCd1 # 成功后将出现"Ready to serve requests".否则请检查配置文件。(说明,用squid -NCd1来以debug模式启动,这样如果有错误会报出来(FATAL: ipcache_init: DNS name lookup tests failed),因为squid启动时会去检查一些常用的DNS,但是如果这时候没有接入internet,自然就出错了,所以我们需要在启动的时候不检查DNS,这就需要用加上-D选项来启动squid,命令如下:#./squid –NCDd1 # 参数Dd1的目的是禁止测试DNS的连通性并且把squid在开始运行后的一些提示信息显示在屏幕上)
8:注册squid为服务:
编写shell脚本存放到目录 /etc/init.d/:
#!/bin/bash
# squid This shell script takes care of starting and stopping
# Squid Internet Object Cache
#
# chkconfig: 546 36 76
# description: a name server
#
case "$1" in
start)
ulimit -HSn 32768 --这句比较重要
/usr/local/squid/sbin/squid -D
;;
stop)
/usr/local/squid/sbin/squid -k shutdown
/usr/local/squid/sbin/squid -k shutdown
;;
reload)
/usr/local/squid/sbin/squid -k reconfig
;;
info)
/usr/local/squid/bin/squidclient -p 80 cache_object://localhost/info
;;
esac
添加权限和开启自动启动
chmod +x squid
chkconfig squid on