0

私はubuntuでnginxをリバースプロキシキャッシングサーバーとして設定しました。

ファイルはmywebroot/cacheフォルダーの場所にキャッシュされます

このフォルダーの所有者とコンテンツはwww-dataであり、私のアプリの所有者は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

これはfirebugでの私の応答です

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-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires Thu, 19 Nov 1981 08:52:00 GMT
Pragma  no-cache

したがって、nginxは正しくキャッシュしません。1つのアプローチは、キャ​​ッシュを決定するためにこれらのヘッダーを無視し、不正なExpiresヘッダーなどを非表示にするようにnginxに指示することです。

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 に答える