immutable_types
Директива `immutable_types` указывает MIME-типы, для которых атрибут `immutable` будет применён в заголовках `Cache-Control`.
Описание
Директива immutable_types является неотъемлемой частью модуля NGINX, предназначенного для оптимизации поведения кеширования статических ресурсов. При включении она инструктирует NGINX установить атрибут immutable в заголовке Cache-Control специально для перечисленных MIME-типов. Этот атрибут сигнализирует браузеру, что тело ответа не изменится, позволяя применять более эффективные стратегии кеширования. Таким образом ответ считается стабильным, что приводит к сокращению запросов к серверу и ускорению загрузки у клиентов.
Эта директива требует как минимум одного аргумента — списка допустимых MIME-типов. Эти типы необходимо указать в конфигурации, чтобы соответствующие ресурсы обрабатывались как неизменяемые. Когда браузер сталкивается с такими типами, он избегает проверки их актуальности при последующих запросах, что особенно полезно для ресурсов с версионированием в именах (например, файлов с хешами), эффективно снижая количество запросов валидации кеша, которые не изменяют ресурс.
В конфигурациях, где применяется immutable, NGINX автоматически устанавливает далёкие даты истечения срока для этих типов при обслуживании по HTTP/1.0 или при отсутствии Expires. Это важно для обеспечения лучшего пользовательского опыта за счёт максимального использования кешированного содержимого без излишней повторной проверки у сервера.
Пример конфига
http {
server {
location /assets/ {
immutable on;
immutable_types image/png image/jpeg;
}
}
}Убедитесь, что указанные MIME-типы корректны, чтобы избежать непреднамеренных эффектов кэширования.
Для браузеров, которые не поддерживают атрибут immutable, эффективность этой директивы может быть ограничена.
Неправильная конфигурация может привести к тому, что при изменении ресурса будет возвращаться устаревшее содержимое.