用squid 3.1.X 有段时间了,发一个简单的配置文件:
squid $> cat /usr/local/squid/etc/squid.conf
visible_hostname nginxs.com
cache_effective_user www
cache_effective_group www
acl Safe_ports port 80
acl host dstdomain www.ninxs.com
acl localhost src 127.0.0.1/255.255.255.255
acl snmp src 192.168.6.102/255.255.255.255
acl manager proto cache_object
acl CONNECT method CONNECT
acl PURGE method PURGE
http_access allow manager localhost # 只允许 本地访问 manager
http_access allow PURGE localhost # 只允许 本地访问 PURGE
http_access deny manager # 其他的一律拒绝访问 manager
http_access deny !Safe_ports # 其他不是设置的 安全端口一律拒绝
http_access allow host # 只允许反向大代理 host = www.nginxs.com 域名站点
http_access deny all # 其他的一律拒绝
由于网站的访问量越来越大,用户播放视频,都要从web服务器拿文件,而且又是动态连接,要调用一个php-cgi进程,这样的话很浪费资源,所以要加缓存服务器。但是问题来了,squid 默认是不缓存动态页面的,google 了半天,发现很多人的文章没有一个说到正点上的。最后自己不停的做测试,看squid.conf.documented,把问题解决了,所以就记录下来,以便以后大家遇到同样的问题。好解决。
列子:
http://www.nginxs.com/nginx/Grec.php?id=eric&b.php?=aaa
首选用 curl 抓 head头。
nginx $> curl -I http://www.nginxs.com/nginx/Grec.php
HTTP/1.1 200 OK
Server: nginx
Date: Fri, 27 Aug 2010 06:49:43 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Vary: Accept-Encoding
X-Powered-By: PHP/5.2.13
Set-Cookie: PHPSESSID=2d4523a7c6a5a54dbb20f64f3bc04be3; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
看红字部分,然后在看 squid.conf.documented 对应的部分
# options: override-expire
# override-lastmod
# reload-into-ims
# ignore-reload
# ignore-no-cache
# ignore-no-store
# ignore-must-revalidate
# ignore-private
# ignore-auth
# refresh-ims
#
把 Cache-Control 的信息,squid对应有违规则 那么我们修改 squid.conf
近期评论