$sent_http_*
Префиксная переменная $sent_http_ возвращает заголовки HTTP-ответа, отправленные клиенту. — NGINX Core (HTTP)
Описание
В NGINX префиксная переменная $sent_http_ автоматически создаётся, когда в блоке server или location устанавливаются определённые заголовки ответа. Для каждого заголовка HTTP-ответа, отправляемого клиенту, существует соответствующая переменная с префиксом $sent_http_. Например, если вы отправляете HTTP-заголовок 'X-My-Header' из конфигурации сервера, соответствующая переменная будет $sent_http_x_my_header. Эти переменные позволяют получить доступ к значениям HTTP-заголовков, которые были отправлены в ответе, непосредственно в конфигурации NGINX или в форматах логов. Эта переменная особенно полезна в сценариях, когда необходимо выполнять условную запись в лог или настраивать вывод на основе значений конкретных заголовков. Переменные $sent_http_ заполняются только в том случае, если соответствующие заголовки действительно установлены в ответе. Если заголовок не установлен, соответствующая переменная будет пустой. Этот механизм помогает отслеживать и управлять различной информацией о заголовках, что имеет решающее значение в таких сценариях, как отладка или проверка поведения сервера, особенно при тестировании.
Пример конфига
location /example {
add_header X-My-Header "MyValue";
add_header X-Another-Header "AnotherValue";
# Log sent headers
access_log /var/log/nginx/example.log custom_format;
}
log_format custom_format 'Sent HTTP Headers: $sent_http_x_my_header, $sent_http_x_another_header';Подсистема
httpКэшируется
ДаТип
Префиксная переменнаяКонтексты
http, server, location, ifУбедитесь, что соответствующие HTTP-заголовки действительно установлены; в противном случае переменная будет пустой.
Имена переменных должны быть в нижнем регистре и использовать символы подчёркивания вместо дефисов, так как NGINX соответствующим образом преобразует имена заголовков (например, X-My-Header становится x_my_header).