0

我已经在我的 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

这是我在萤火虫中的回应

4

1 回答 1

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-cache 等。

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;

正如这篇文章所暗示的,您还可以设置,例如,

expires 1d;

使代理缓存过期 1 天。

于 2013-04-02T06:56:13.867 回答