Nginx 不会减少 max-age

Nginx 不会减少 max-age

我正在尝试将 Nginx 设置为在 Unicorn 上运行的 Rails 应用程序的反向代理。

我的应用程序有一些公共页面,我想缓存 60 分钟,所以我设置了 max-age 标头。

此外,我还将 proxy_cache 选项添加到 Nginx 中的服务器块。

proxy_cache default;

并定义了这个缓存

proxy_cache_path /var/www/nginx_cache keys_zone=default:10m max_size=500m;

我已经设置我的应用程序将此标头添加到我的可缓存响应中

Cache-Control: max-age=3600, public

当客户端第一次访问该页面时,页面会被渲染并返回响应。但是,在后续请求中,nginx 不会减少 max-age 计数器。

因此,访问者可能会在过期前一分钟访问我的页面,这意味着他看到的是 59 分钟前的内容。但他会将此副本保留在他的浏览器中 60 分钟,然后才会获得新副本。

我可以让 Nginx 减去过去的时间吗,这样,如果访问者访问了已在 Nginx 缓存中停留 25 分钟的页面,那么最大年龄将是 35 分钟(2100 秒)?

答案1

你的方法完全错误。

请阅读更多有关 Nginx 代理缓存的信息 http://nginx.org/en/docs/http/ngx_http_proxy_module.html

这也很有用: 如何将 Nginx 设置为缓存反向代理?

相关内容