web-dev-qa-db-ja.com

Nginx:404応答の有効期限を設定するにはどうすればよいですか?

私のnginxサーバーは別のサーバーのプロキシとして機能し、404を返すことがあります。
200応答と同じように、404応答をキャッシュ可能にしたい。

ただし、 documentation には次のように記載されているため、expiresは使用できません。

expiresは、200、204、301、302、および304の応答に対してのみ機能します。

200以外の応答のキャッシュは、HTTP仕様に従って 完全に可能 であることに注意してください。

では、404応答に有効期限を設定するにはどうすればよいですか?

2
Ruben Verborgh

2つのオプションがあります。

  1. 別のサーバーを変更して、キャッシュヘッダーを提供します。

  2. headers_more モジュールを使用します。エラーhttp応答にヘッダーを追加できますが、nginxを再コンパイルする必要があります。

  3. Luaモジュール を使用します。


元の答え

クライアント(ブラウザ)にエラーページをキャッシュすることはできません

おそらく、別のサーバーからの応答をキャッシュする必要があり、それはproxy_cacheディレクティブで可能です。 proxy_cache_validディレクティブも見てください。

1
Alexey Ten