NGINX 代理默认缓存时间,带有 Cache-Control 并且没有过期

dlr*_*ust 4 nginx proxy cache reverse-proxy

我在 NGINX 代理上启用了缓存。

据我了解,只要我不忽略Cache-Control代理配置中的标头 ( ),就可以使用=proxy_ignore_headers从源服务器设置过期前的缓存时间。Cache-Controlmax-age=XXXX

但是它会保留并用于类似的默认缓存时间是多少Cache-Control: public?有没有办法为这些资源设置默认的最大缓存时间?

max*_*zig 5

没错,默认情况下,只要配置好,nginx 只缓存标头中设置的proxy_cache响应。max-ageCache-Control

没有任何Cache-Control标头或只是Cache-Control: publicnginx 不会缓存响应(即每次X-Cache-Status: MISS配置时都会得到add_header X-Cache-Status $upstream_cache_status;)。

Cache-Control您可以为没有标头或标头max-age中没有字段的响应配置默认缓存时间Cache-Control

    # for 200, 301, 302 responses
    proxy_cache_valid     10m;
    # for all other responses
    proxy_cache_valid any 1m;
Run Code Online (Sandbox Code Playgroud)

这意味着Cache-Control标头优先于proxy_cache_valid设置,并且proxy_cache_valid.