Назад | Перейти на главную страницу

Nginx: Как установить срок действия для 404 ответов?

Мой сервер nginx действует как прокси для другого сервера, который иногда возвращает 404.
Я хочу, чтобы 404 ответа были кэшируемыми, как и 200 ответов.

Однако я не могу использовать expires, поскольку документация утверждает, что:

expires работает только для ответов 200, 204, 301, 302 и 304.

Обратите внимание, что кеширование ответов не 200 вполне возможно согласно спецификации HTTP.

Итак, как я могу установить дату истечения срока действия для ответов 404?

Я вижу два варианта:

  1. Измените другой сервер для предоставления заголовков кэширования.

  2. Использовать headers_more модуль. Он позволяет добавлять заголовки в HTTP-ответы об ошибках, но вам придется перекомпилировать nginx.

  3. Использовать Модуль Lua.


Оригинальный ответ

Невозможно кешировать страницы ошибок на клиенте (браузере)

Возможно, вы хотите кэшировать ответ от другого сервера, и это возможно с proxy_cache директива. Также взгляните на proxy_cache_valid директива.