1. 下载与编译安装
###Step 1: export the CFLAGS### export CFLAGS=-O2 ###Step 2: configure the Orign Squid### ./configure --enable-kill-parent-hack --enable-large-cache-files --with-large-files --with-maxfd=344800 --enable-snmp --enable-internal-dns --disable-ident-lookups --enable-carp --enable-async-io=160 --enable-storeio=ufs,aufs,diskd,null,coss --enable-epoll --enable-linux-netfilter --enable-linux-tproxy --enable-stacktraces --enable-forward-log --enable-referer-log --enable-useragent-log --enable-delay-pools --enable-follow-x-forwarded-for --enable-forw-via-db --enable-ssl --enable-default-err-language=Simplify_Chinese --enable-err-languages="Simplify_Chinese English" --without-system-md5 ###Step 3:make the source Code of Squid### make ###Step 4:RUN the 'make install' after make command### make install
Squid官方下载地址:
http://www.squid-cache.org/Versions/v2/2.7/
部分编译参数参考:
--enable-gnuregex \Squid大量使用字符串处理做各种判断,加入此项能更好的处理 --enable-icmp \加入icmp支持 --enable-kill-parent-hack \关掉suqid的时候,连同父进程一起关掉 --enable-snmp \此选项可以让MRTG使用SNMP协议对服务器的流量状态进行监测,因此必须选择此项,使Squid支持SNMP接口。 --disable-ident-lookups \防止系统使用RFC931规定的身份识别方法。 --enable-cahce-digests \加快请求时,检索缓存内容的速度。 --enable-arp-acl \可以在规则设置中直接通过客户端的MAC地址进行管理,防止客户使用IP欺骗 --enable-default-err-languages="Simplify_Chinese" \ :指定出错是显示的错误页面为简体中文 --enable-linux-netfilter \可以支持透明代理 --enable-auth-modules \此编译选项启用认证模块,可以对访问代理用户进行授权 --enable-follow-x-forwarded-for \ --enable-storeio=aufs,ufs \(支持的存储模块) --with-maxfd=65536 \参数是增大squid文件描述符到65536 --with-pthreads \ --enable-dlmalloc \ --enable-poll \应启用Poll()函数而不是select()函数,通常而言poll(轮询)比select要好,但configure(脚本程序)已知Poll在某些平台下失效, 若你认为你比configure编译配置脚本程序要聪明的话,可以用这个选项启用Poll。总之就是用这个可以提升性能就是啦。 --enable-underscore \允许解析的URL中出现下划先,因为默认squid会认为带下划线的URL地址是非法的,并拒绝访问该地址。 --enable-stacktraces \ --enable-removal-policies=heap,lru \ --enable-delay-pools \此选项使能一个延时池,这样能对某些特定的请求限制额定
基础配置:
用户和用户组配置: groupadd squid useradd -g squid -s /sbin/nologin squid nologin 大多是虚拟用户用的SHELL ,也就是说虽然他是系统用户,但他并无登录系统的权限;如果您想添加这类用户,就把他的SHELL设置成/sbin/nologin -s 指定用户登入后所使用的shell 1,初始化你在 squid.conf 里配置的 cache 目录 #/usr/local/squid/sbin/squid -z 如果有错误提示,请检查你的cache目录的权限是否为squid。 2,对你的squid.conf 排错,即验证 squid.conf 的语法和配置。 #squid/sbin/squid -k parse 如果squid.conf 有语法或配置错误,这里会返回提示你,如果没有返回,可以尝试启动squid。 3,在前台启动squid,并输出启动过程。 #squid/sbin/squid –Nd1 -N保持squid前台运行,-d1在标准错误里显示1级别的调试信息。 如果有到ready to server requests,启动成功。 可以使用squidclient程序来测试 Squdiclient http://www.squid-cache.org 如果正常工作,squid的主页信息会打印到你的终端。 4,启动squid在后台运行。 #squid/sbin/squid -s 或者service squid start 可以 ps -aux | grep squid 来查看系统进程,32位系统可以看到俩个squid 进程。 5,停止squid #squid/sbin/squid -k shutdown 或者service squid stop 6,重引导修改过的 squid.conf #squid/sbin/squid -k reconfigure 或者service squid reload 这个可以随时修改squid.conf,然后别忘记对你的 squid.conf排错,然后再执行此指令,即可让squid重新按照你的squid.conf 来运行。 /usr/local/squid/var/squid.conf.reload 可以查看当前squid运行所加载的配置文件 7,把squid添加到系统启动项 编辑 /etc/rc.d/rc.local 添加如下行:/usr/local/squid/sbin/squid -s 当然,并不是每个人都喜欢这种启动方式,你可以用你最习惯的方式;或者把它安装为服务。
再来点其他的:
1,修改cache缓存目录的权限。 #chown -R squid:squid /data/cache1 我的cache缓存目录是/data/cache1,squid执行用户和用户组是 squid,squid。 2,修改squid 日志目录的权限 #chown -R squid:squid /data/proclog/log/squid/ 让squid有权限在该目录进行写操作。 例如生成的 access.log cache.log store.log 3,查看你的日志文档。 #more /usr/local/squid/var/logs/access.log | grep TCP_MEM_HIT 该指令可以看到在squid运行过程中,有那些文件被squid缓存到内存中,并返回给访问用户。 #more /usr/local/squid/var/logs/access.log | grep TCP_HIT 该指令可以看到在squid运行过程中,有那些文件被squid缓存到cache目录中,并返回给访问用户。 #more /usr/local/squid/var/logs/access.log | grep TCP_MISS 该指令可以看到在squid运行过程中,有那些文件没有被squid缓存,而是现重原始服务器获取并返回给访问用户。 关于 TCP_XXXX 等参数及代表的信息,请参看《squid中文权威指南》13.2.1 章节。
相关文件介绍:
/etc/squid/squid.conf squid的主配置文件 /etc/squid/errors 报告错误使用的语言 /etc/squid/mib.txt Squid-MIB定义文件 /etc/squid/mime.conf 定义MIME-TYPE /etc/squid/msntauth.conf MSNT认证的配置文件 /usr/sbin/squid Squid主程序 /usr/sbin/squidclient 统计显示摘要表的客户程序 /usr/lib/squid/*_auth Squid的各种认证库文件
squid.conf 配置见《squid中文权威指南》