if_modified_since

Директива 'if_modified_since' контролирует, как NGINX отвечает на запросы на основе метки времени Last-Modified указанного ресурса.

Синтаксисif_modified_since on | off | exact;
По умолчаниюoff
Контекстhttp, server, location
Аргументы1

Описание

Директива if_modified_since используется в NGINX для управления кэшированием содержимого на основе заголовка Last-Modified, отправляемого клиентами. Эта директива может принимать одно из трёх значений: off, on или exact. При значении on NGINX проверяет, был ли запрашиваемый ресурс изменён после времени, указанного в заголовке If-Modified-Since запроса клиента. Если ресурс не изменился, NGINX отвечает статусом 304 Not Modified, что указывает клиенту, что он может использовать свою кэшированную версию.

Опция exact уточняет сравнение, требуя точного совпадения метки времени. Если метка времени If-Modified-Since в запросе совпадает с меткой Last-Modified ресурса, NGINX вернёт ответ 304 Not Modified. Это может быть полезно для более строгой валидации кэша. Напротив, при значении off директива отключает такое поведение проверки, и NGINX всегда будет возвращать ресурс, независимо от состояния кэша на стороне клиента. Это может быть полезно в сценариях, где обновления содержимого происходят часто и кэширование не приносит пользы.

Пример конфига

server {
    location /images/ {
        if_modified_since on;
    }
}

Не забудьте проверить, что ваш бэкенд или статические файлы корректно устанавливают заголовок Last-Modified; в противном случае директива не будет работать должным образом.

Опция exact не вернёт ответ 304, если метки времени не совпадают точно, в отличие от опции on, которая считает любой неизменённый ресурс валидным.

Убедитесь, что ваша стратегия кэширования хорошо сочетается с этой директивой, чтобы избежать лишней нагрузки на сервер.

← Ко всем директивам