$sent_trailer_*

Переменная $sent_trailer_ является префиксной переменной, используемой для получения трейлеров, отправляемых с HTTP-ответами в NGINX. — NGINX Core (HTTP)

$sent_trailer_* NGINX Core (HTTP)

Описание

Переменная $sent_trailer_ используется в сочетании с HTTP/1.1-ответами, которые включают трейлеры — дополнительные поля, отправляемые после тела сообщения. Эта переменная позволяет NGINX получить доступ к конкретным полям трейлера, которые могли быть установлены в ответе. Она может использоваться в виде префикса к имени трейлера, например `$sent_trailer_myfield`, что вернёт значение трейлера `myfield`, если он был указан в HTTP-ответе. Обычно эта переменная задаётся на этапе формирования HTTP-ответа, когда трейлеры определены и готовы к отправке. Сами трейлеры определяются в полях заголовка ответа, и, следовательно, значения, связанные с переменными $sent_trailer_, будут зависеть от того, как приложение или бэкенд-сервис заполняют эти поля трейлеров до того, как NGINX отправит окончательный ответ. Если указанный трейлер существует, переменная вернёт его значение; в противном случае она вернёт пустую строку. Использование трейлеров не очень распространено в ответах фронтенд-серверов, и их поддержка в значительной степени зависит от реализации клиента и сервера. Некоторые сценарии применения трейлеров включают передачу контрольных сумм или другой метаданных, которые должны идти после полезной нагрузки в потоковых сценариях, что делает трейлеры полезной функцией для отдельных приложений.

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

location /example {
    add_header My-Trailer myvalue;
    # The value of the trailer can be accessed
    echo "$sent_trailer_My-Trailer";
}

Подсистема

http

Кэшируется

Да

Тип

Префиксная переменная

Контексты

http, server, location

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

Убедитесь, что бэкенд действительно отправляет заголовки трейлера; в противном случае эта переменная не будет иметь значения.

Помните, что не все клиенты поддерживают HTTP-трейлеры, что может ограничить варианты использования.