全部博文(535)
分类: LINUX
2011-10-11 11:11:53
在用squid作为缓存服务器的时候,其能否缓存页面是个大问题,这不是由squid来决定的,而是由网页设计者指定的。
举个例子:设计一个的网页,其中有静态的图片,还有动态的密码输入,如果让两者都缓存,岂不是密码就不安全了。于是只想让静态图片在squid 中缓存,那么就在密码输入的headers中加入 no-store的参数就可以了。
这只是一个例子:其实指定页面能否被缓存,主要由以下4个关键字决定
Last-Modified: 告诉反向代理页面什么时间被修改
Expires: 告诉反向代理页面什么时间应该从缓冲区中删除
Cache-Control: 告诉反向代理页面是否应该被缓冲
Pragma: 告诉反向代理页面是否应该被缓冲.
其中Cache-Control关键字尤为重要,那么详细看一下它
从字面意思可以看出: Cache-Control--缓存控制
Cache-Control 包含几个定义:
那么如果网页指定了不能缓存, squid非要缓存,有没有办法呢,回答是一部分有办法,一部分没有办法
public:网页指定可以被缓存
private:网页指定这是私有数据,不能被缓存。squid强制缓存:ignore-private
no-cache:网页指定不能被缓存。 squid强制缓存:ignore-reload
no-store:网页指定不能被缓存。squid无法缓存
must-relvalidate:强制浏览器遵守规则。 squid无法缓存
proxy-revalidate:强制代理服务器遵守规则。squid无法缓存带有proxy-relalidate的no-cache指定
max-age:数据内容在指定的时间内缓存。