Andrey Kopeyko писал 2021-05-23 03:57:
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 ожидает
увидеть _до_ тела.
Наверное, я не прав - судя по документации, они должны "подкладываться"
к $upstream_ переменным
$upstream_trailer_имя
хранит поля из конца ответа, полученного от сервера группы
(1.13.10).
https://nginx.org/ru/docs/http/ngx_http_upstream_module.html#variables
Похоже на багу, раз "не подкладываются".
--
Best regards,
Andrey A. Kopeyko <and...@kopeyko.ru>
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru