我们正在使用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似乎在到期标头上以某种方式失败。