Мой сервер nginx действует как прокси для другого сервера, который иногда возвращает 404.
Я хочу, чтобы 404 ответа были кэшируемыми, как и 200 ответов.
Однако я не могу использовать expires
, поскольку документация утверждает, что:
expires
работает только для ответов 200, 204, 301, 302 и 304.
Обратите внимание, что кеширование ответов не 200 вполне возможно согласно спецификации HTTP.
Итак, как я могу установить дату истечения срока действия для ответов 404?
Я вижу два варианта:
Измените другой сервер для предоставления заголовков кэширования.
Использовать headers_more модуль. Он позволяет добавлять заголовки в HTTP-ответы об ошибках, но вам придется перекомпилировать nginx.
Использовать Модуль Lua.
Невозможно кешировать страницы ошибок на клиенте (браузере)
Возможно, вы хотите кэшировать ответ от другого сервера, и это возможно с proxy_cache
директива. Также взгляните на proxy_cache_valid
директива.