$content_type

Переменная $content_type в NGINX содержит значение заголовка Content-Type HTTP-ответа. — NGINX Core (HTTP)

$content_type NGINX Core (HTTP)

Описание

Переменная $content_type в NGINX автоматически устанавливается при обработке ответа и отражает заголовок Content-Type этого ответа. Как правило, она используется для указания медиатипа возвращаемого ресурса в формате, определённом RFC 6838. Частые значения включают 'text/html' для HTML-документов, 'application/json' для JSON-ответов и 'image/png' для PNG-изображений. Эта переменная устанавливается в фазе обработки запроса и может быть изменена различными директивами, которые влияют на ответ, такими как 'add_header', 'default_type' и 'types'. Когда NGINX отдаёт статические файлы, Content-Type определяется на основе расширения файла и настроек конфигурации, заданных в блоке 'http' или в конкретных контекстах 'server' или 'location'. Например, если запрашивается файл с расширением '.html', то $content_type обычно устанавливается в 'text/html'. В случаях, когда явный тип не задан, NGINX использует значение, заданное директивой 'default_type', если оно доступно; в противном случае значение может остаться неустановленным.

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

location /images/ {
    types {
        image/png png;
        image/jpeg jpg;
        image/gif gif;
    }
    default_type application/octet-stream;
    add_header Content-Type $content_type;
}

Подсистема

http

Кэшируется

Да

Контексты

http, server, location, if

Если не найден подходящий тип, $content_type может быть пустым, что приведёт к неожиданным ответам.

Пользовательские типы должны быть правильно объявлены в блоке 'types', чтобы обеспечить корректное присвоение $content_type.

Использование $content_type в контексте, не предназначенном для работы с ответами, может привести к неуместным значениям.