squid quick start

 
系统rhel5
 
1)安装
cd   / usr / local / src
wget http:
// www . squid- cache . org / Versions / v2 / 2.6 / squid- 2.6 . STABLE17 . tar . gz
tar xzvf squid-
2.6 . STABLE17 . tar . gz 
./ configure --enable-icmp --enable-htcp
make
make install
 
如果操作系统自带squid 2.6,跳过此步
 
2)配置
squid 默认的配置文件拒绝每一个客户请求
# http_access deny all
改为:
http_access allow all
 
3)初始化
安装完毕,初始化缓存目录
squid -zX
 
4)启动
squid -N -d1
 
5)测试suqid正向代理
配置你的浏览器使用squid 作为代理,然后打开某个web 页面。假如squid 工作正常,页面被迅速
载入,就象没使用squid 一样,这不是重点,关键进入下一步
 
 
6)配置反向代理
Suqid2.6和squid2.5在此有很大的变化,查了些资料,算是搞定
 
http_port  80  defaultsite = www . yourdomain . com
cache_peer 
$ {the ip of yourdomain} parent  80   0  no-query originserver
 
 
重新启动
 squid -k shutdown
 squid
ok
 
7)缓存动态页面
但发现对动态的url无法缓存,请求日志总是:
X- Cache : MISS from localhost . localdomain
于是在reponse的header里加上
Expires:${time}
 
终于发现:X-Cache: HIT from localhost.localdomain的字样,看来是生效了
 
但是对于带?的url还是没法缓存,于是
 
屏蔽下面3行
#hierarchy_stoplist cgi-bin ?
 
#acl QUERY urlpath_regex cgi-bin /?
#cache deny QUERY
 
再次测试 终于ok
 
 
我后来发现如果只是用Expires,无法利用浏览器的一些特性,如果强制刷新每次都要麻烦squid,
于是加上Last-Modified,此时浏览器在请求中加入If-Modified-Since
此时连squid都不用取缓存,而是给一个304让浏览器从本地取
 
本文旨在 squid快速上手,配置方面很粗糙,讲究精细的配置请参考官方文档
 
参看资料:
squid的缓存时间算法: http://wiki.squid-cache.org/SquidFaq/InnerWorkings?highlight=%28Cache-Control%29#head-42f0582290981fb15dd7d7edd3d42ae8c52fa317
 

你可能感兴趣的:(浏览器,cache,header,测试,query,regex)