38

次のように構成された Nginx にリソースがあります。

location ~ foo\.js$ {
    add_header Cache-Control public;
    expires 1d;
}

これを Firebug で開いてヘッダーを見ると、次のように表示されます。

Cache-Control   max-age=86400, public

サイトは HTTPS を使用しているため、正しく取得したいと思います。これは、 max-age>0 AND でない限り、明らかにブラウザーがキャッシュしないためpublicです。これを見る

しかし、Nginx を使用するcurl -Ik https://...と、次のように表示されます。

...
Expires: Sat, 22 Jan 2011 18:23:36 GMT
Cache-Control: max-age=86400
Cache-Control: public
...

Cache-Controlヘッダーを繰り返します!明らかに Firebug は気にしません。しかし、それは正しいですか?

Expiresand Cache-Control(with public) を 2 行で設定するより良い方法はありますか?

4

2 に答える 2

4

異なる構成で同じ問題が発生していました。これが現在私のために働いているものです。

モジュール ngx_http_headers_moduleからの例


map $sent_http_content_type $expires {
    default                    off;
    text/html                  epoch;
    text/css                   max;
    application/javascript     max;
    application/octet-stream   max;
    ~image/                    max;
}

server {
        expires $expires;
        ....
}

于 2011-06-20T18:02:13.970 に答える