如何仅使用缓存控制标头启用共享代理缓存(nginx)而不启用私有(浏览器)缓存?

时间:2019-04-22 13:58:13

标签: nginx cache-control response-headers max-age s-maxage

我们将NGINX用作反向代理+ Web服务器,而我正在尝试使用Cache-Control标头来启用API响应缓存。但是,我只想为共享缓存(nginx的代理缓存)而不是私有缓存(即浏览器缓存)启用它。基本上,我不希望前端使用缓存的结果,但是我希望其他服务使用缓存的结果。

我尝试使用max-age设置为0且s-maxage设置为特定值(假设为5s)的Cache-Control标头,但是,不适用于nginx。

这是我的标题的样子-

Cache-Control: public, max-age=0, s-maxage=5

我希望它不会在浏览器上缓存(它正确地做到了),但是它也不在nginx上缓存(这是我不想要的->我希望它在nginx上缓存)。

经过一番阅读,我了解到nginx不尊重s-maxage。因此,这个问题,是否还有其他方法可以通过nginx实现呢?

否则,我将不得不向客户端的每个请求添加缓存控制标头,以要求浏览器和nginx始终进行重新验证。

0 个答案:

没有答案