Nginx的Expires Header缓存问题

时间:2018-12-04 16:40:05

标签: nginx caching

我们正在使用Nginx作为反向代理,并且一切似乎都正常工作。我们启用了缓存,并且从11月15日到11月30日工作正常。代理服务器返回的请求已过期,标头设置为5分钟后过期。 但是,这在12月1日停止了工作。罪魁祸首似乎是日期格式。 通过一个简单的测试用例,我们能够弄清楚:

 new org.mockserver.model.Header("Expires", "Tue, 04 Dec 2018 16:23:31 GMT")

工作正常。但是,这失败了:

 new org.mockserver.model.Header("Expires", "Tue, 4 Dec 2018 16:23:31 GMT")

以下是我的代理设置:

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=nginx_cache:10m max_size=10g use_temp_path=off;

proxy_cache nginx_cache;
proxy_cache_methods GET;
proxy_ignore_headers Set-Cookie;

是我的配置有问题还是Nginx有问题?这是我们在机器人Nginx版本1.3.7和1.3.10中尝试过的问题

已编辑 这些标头是从第三方API发送的。但是,它们似乎也在发送其他标头(例如表单测试用例):

        new org.mockserver.model.Header("Date", "Tue, 04 Dec 2018 16:13:45 GMT"),
        new org.mockserver.model.Header("Expires", "Tue, 6 Dec 2018 16:23:31 GMT"),
        new org.mockserver.model.Header("Cache-Control", "max-age=586, must-revalidate")

,按照此链接,缓存控件应具有优先级: what’s the difference between Expires and Cache-Control headers?

但是nginx似乎在到期标头上以某种方式失败。

0 个答案:

没有答案