我有一个带有更多站点的服务器,安装清漆后我测试了缓存是否有效,但对于一个网站不起作用清漆(响应为 max-age=0)。如果我尝试在此网站的同一文件夹中插入一个简单的 php 页面(与主网站无关),则响应有效。
这是尝试时的标头:
HTTP/1.1 200 OK
Server: Apache/2.2.27 (Unix) mod_ssl/2.2.27 OpenSSL/1.0.1e-fips
X-Powered-By: PHP/5.2.17
Set-Cookie: PHPSESSID=ragejao4sm1kckjn1trvap3ft0; path=/
Vary: User-Agent,Accept-Encoding
Content-Encoding: gzip
Content-Type: text/html
Cache-Control: max_age=8600
magicmarker: 1
Content-Length: 11863
Accept-Ranges: bytes
Date: Fri, 12 Jun 2015 12:28:15 GMT
X-Varnish: 1250916100
Age: 0
Via: 1.1 varnish
Connection: keep-alive
Varnish 不会在设置 cookie 的位置缓存响应。
如果要更改此行为,则需要考虑如何使用cookie(它看起来像会话cookie),并使用会话ID作为缓存哈希的一部分(即,这样其他用户就不会从其他人的会话中获得缓存的响应)或使用类似ESI的东西来允许缓存页面的"公共"部分,同时独立获取会话特定的部分。
http://www.varnish-cache.org/trac/wiki/VCLExampleCacheCookies
https://www.varnish-cache.org/trac/wiki/ESIfeatures