Gena Makhomed писал 2021-05-23 01:50:
On 23.05.2021 1:25, Andrey Kopeyko wrote:

Добрый день, Геннадий!

Здравствуйте, Андрей!

Использую nginx/1.19.10 из официального репозитория nginx.org

На бэкенде в секции http прописал такие директивы:

add_trailer X-Response-Time $upstream_response_time always;
add_trailer X-Cache-Status $upstream_cache_status always;

На фронтенде в секции http прописал proxy_http_version 1.1;
Также на фронтенде в директиву log_format добавил переменные:

$upstream_trailer_x_response_time $upstream_trailer_x_cache_status

Ожидается что в лог будут записаны полученные значения этих переменных,
но вместо них в лог пишутся символы - - обозначающие пустые значения.

Почему так происходит?

Очевидно, потому что бэкенд _не_ возвращал вам заголовков "trailer-x-response-time: " - вы их сами выдумали.

trailer fields at the end of the message - это не заголовки.

Бэкенд эти trailers возвращает, я проверял переменные

$sent_trailer_x_response_time $sent_trailer_x_cache_status

на бэкенде они имеют не пустые значения и пишутся в лог бэкенда.

Стало понятнее.

Предположу, что в переменные $upstream_ они не попадают, т.к. передаются бэкендом _после_ тела ответа, а заголовки nginx ожидает увидеть _до_ тела.



--
Best regards,
Andrey A. Kopeyko <[email protected]>
_______________________________________________
nginx-ru mailing list
[email protected]
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Ответить