共计 3646 个字符,预计需要花费 10 分钟才能阅读完成。
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中文权威指南》
正文完