2007年7月22日星期日

Squid2.6实践初步

本实践旨在用squid反向代理,来做cache前端。
测试用例:
客户浏览器:162
cache:107
original webserver:200
今200上静态图片需要cache
server来分流,host为avatar.mydomain.com,在162的etc/hosts将avatar.mydomain.com指向107。实际应用中不可能配置用户dns,这项工作应该在mydomain.com的dns上完成。
现在的任务是配置107上的squid,充当cache
server,当162正常请求avatar.mydomain.com时,如果107已经保存了此uri的图片,且尚未到达cache时限,则107直接response,否则向200请求改图片,然后relay给用户。当用户请求并声明no-cache时,squid总是请求原始图片。

一、wget http://www.squid-cache.org/Versions/v2/2.6/squid-2.6.STABLE14.tar.gz
按照
http://home.arcor.de/jeffpang/squid/chap03.html#a5(注意此为2.5版本的指南,一定要看新的release
note!)
的说明来设置、编译、安装。默认路径在/usr/local/squid/
如果是在windows上,可以下载已经编译好的版本
http://squid.acmeconsulting.it/download/squid-2.6.STABLE14-bin.zip
按照
http://www.acmeconsulting.it/SquidNT/
的说明来设置即可


二、修改配置文件
./etc/squid/conf
默认是代理模式,我们使用加速模式。
1、源服务器
cache_peer 192.168.0.200 parent 80 0 no-query originserver
2、本地监听端口
http_port 80 vhost
vhost表示携带host信息到源服务器,不加它的话,
请求都是192.168.0.200/a.jpg
而不是avatar.mydomain.com/a.jpg
如果二级域名avatar在apache中有用到,则必须设vhost。
3、权限控制
http_access allow all
为了安全,应该设置更精细些

三、过期
默认是三天过期
refresh_pattern . 0 20% 4320
为了防止over hit的情况发生,比较好的做法是给uri加时间戳,例如a.jpg?123456789

没有评论: