$sent_trailer_*
Переменная $sent_trailer_ является префиксной переменной, используемой для получения трейлеров, отправляемых с HTTP-ответами в NGINX. — 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-трейлеры, что может ограничить варианты использования.