Caching 我是否需要将nigix缓存文件的所有者更改为应用程序文件夹的所有者

Caching 我是否需要将nigix缓存文件的所有者更改为应用程序文件夹的所有者,caching,nginx,reverse-proxy,Caching,Nginx,Reverse Proxy,我已经在ubuntu中设置了nginx作为反向代理缓存服务器 这些文件将被缓存在位置mywebroot/cache文件夹中 此文件夹和内容的所有者是www data,而我的应用所有者是root 对于要从nginx缓存提供服务的页面,是否应该将缓存文件的所有者更改为root 编辑: 这是我在firebug中的回应参考: 以下响应头将响应标记为不可缓存,除非 它们被忽略: Set-Cookie Cache-Control containing "no-cache", "no-store", "pri

我已经在ubuntu中设置了nginx作为反向代理缓存服务器

这些文件将被缓存在位置mywebroot/cache文件夹中

此文件夹和内容的所有者是www data,而我的应用所有者是root

对于要从nginx缓存提供服务的页面,是否应该将缓存文件的所有者更改为root

编辑:

这是我在firebug中的回应参考:

以下响应头将响应标记为不可缓存,除非 它们被忽略:

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;
这表明,您还可以设置,例如

expires 1d;

使代理缓存过期1天。

您担心什么?假设www数据是运行nginx worker进程的用户,我看不出这样做的理由。@ChuanMa:我的应用程序页面正在nginx缓存目录下缓存。但我不确定当同一个请求到达nginx时,它是从缓存中提供的;但我不知道如何证实这一点。我对nginx@ChuanMa:运行nginx worker进程的用户是www数据。您可以使用浏览器的开发人员控制台查看标头的值。例如,在chrome的控制台中,有一个“网络”选项卡。您可以从那里查看响应标题,并查看缓存状态的X-Cache值。@chrome控制台中的“网络”选项卡下找不到X-Cache值。我将稍后测试并更新状态。由于此服务器也用于其他一些应用程序,我无法立即更改配置并测试输出。我将代理\u忽略\u头X-Accel-Expires Expires缓存控制添加到了我的nginx配置中。现在我遇到了一个问题。但是我注册的用户无法注销应用程序,对于不同的用户,它会显示相同的页面,有时会自动登录。我遇到了很多问题。我还需要做些什么来防止我的应用程序出现这种不寻常的行为。:)所有上游服务器响应都被缓存。所以每个人都看到了相同的反应。这就是为什么在大多数情况下不应该缓存动态内容。您可以使用proxy\u no\u cache和proxy\u cache\u bypass指令来不缓存某些响应。是否有任何方法可以将我的会话或cookie信息用作缓存密钥来缓存页面。这样,至少对于一个登录的会话,注册用户将从缓存中获得页面服务。您可以使用proxy\u cache\u密钥指令来使用任何cookie值。这很简单。请参阅:。Nginx以$cookie\u yourCookieName的形式为任何cookie提供构建变量。看见
expires 1d;