Nginx的:如何设置404响应到期?

我的nginx服务器充当另一台服务器的代理,有时返回404s。
我希望404响应可以被caching,就像200响应一样。

但是,我不能使用expires ,因为文档指出:

expires仅适用于200,204,301,302和304响应。

请注意,根据HTTP规范,非200响应的caching是完全可能的 。

那么我怎样才能在404响应中设置到期date呢?

我看到两个选项:

  1. 修改另一台服务器以提供caching标头。

  2. 使用headers_more模块。 它允许添加头到错误的http响应,但是你将不得不重新编译nginx。

  3. 使用Lua模块 。


原始答案

在客户端(浏览器)上caching错误页面是不可能的

可能你想要caching来自另一台服务器的响应,并可能使用proxy_cache指令。 还要看看proxy_cache_valid指令。