我已经在我的ubuntu中设置了nginx作为反向代理缓存服务器。
文件将缓存在mywebroot / cache文件夹
的位置此文件夹的所有者和内容为www-data,我的应用所有者为root
我应该将我的缓存文件的所有者更改为root用于从nginx缓存提供的页面吗?
编辑:
Cache-Control no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection keep-alive
Content-Encoding gzip
Content-Length 3817
Content-Type text/html; charset=utf-8
Date Fri, 29 Mar 2013 10:19:23 GMT
Expires Thu, 19 Nov 1981 08:52:00 GMT
Pragma no-cache
Server nginx/1.1.19
Vary Accept-Encoding
X-Cache-Status MISS
X-Powered-By PHP/5.3.10-1ubuntu3.6
这是我在萤火虫中的回应
答案 0 :(得分:0)
参考:http://wiki.nginx.org/HttpProxyModule#proxy_cache。
以下响应标头将响应标记为不可缓存,除非 他们被忽略了:
Set-Cookie Cache-Control containing "no-cache", "no-store", "private", or a "max-age" with a non-numeric or 0 value Expires with a time in the past X-Accel-Expires: 0
根据您更新的问题,您的上游服务器会返回过去的到期时间和缓存控制:无缓存等。
Cache-Control no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires Thu, 19 Nov 1981 08:52:00 GMT
Pragma no-cache
所以nginx正确地不会缓存它。一种方法是告诉nginx忽略这些标头以确定缓存并隐藏错误的Expires标头等。
proxy_ignore_headers X-Accel-Expires Expires Cache-Control Set-Cookie;
proxy_hide_header Pragma Expires Cache-Control;
正如post所示,您也可以设置,例如
expires 1d;
使代理缓存过期1天。