eval_override_content_type
Директива `eval_override_content_type` позволяет указать пользовательский тип содержимого для ответа выполненного подзапроса.
Описание
Директива eval_override_content_type используется вместе с модулем NGINX eval и особенно полезна при обработке подзапросов, которые возвращают содержимое. Эта директива позволяет вручную задать заголовок Content-Type для ответа, сформированного из вычисленной переменной. По умолчанию ответы наследуют заголовок Content-Type от исходного запроса или подзапроса; однако в ситуациях, когда возвращаемое содержимое отличается или требует особой обработки, эта директива даёт возможность явно управлять Content-Type, обеспечивая корректную интерпретацию ответа клиентами.
Чтобы использовать эту директиву, укажите один аргумент, задающий требуемый тип содержимого, например 'text/plain' или 'application/json'. Она может располагаться в контекстах HTTP, server или location и необходима тогда, когда обычная обработка ответа не присваивает подходящий тип. Поскольку директива допускает инъекцию содержимого в локациях, обрабатывающих динамическое содержимое, она эффективно работает в сценариях, где типы ответов меняются в зависимости от обработки на бэкенде или логики приложения.
При внедрении этой директивы следует внимательно учитывать ожидаемый вывод вычисленной переменной; указанный тип содержимого должен соответствовать формату этого вывода, иначе клиенты могут неверно интерпретировать данные.
Пример конфига
location /example {
eval_override_content_type application/json;
eval $data {
backend_response;
}
if ($data ~ '"key": "value"') {
add_header X-Custom-Header 'Found value';
}
}Убедитесь, что указанный тип содержимого соответствует фактическому возвращаемому содержимому; в противном случае клиенты могут неверно интерпретировать ответ.
Неправильная конфигурация может привести к непредвиденному поведению, особенно если она сочетается с другими директивами обработки содержимого, такими как proxy_set_header.
Отсутствие определения этой директивы может привести к тому, что клиентам будут отправлены нежелательные типы содержимого.