Re: How to write $upstream_trailer_{name} into access.log
Из документации как это понять On Mon, May 24, 2021, 6:19 AM Maxim Dounin wrote: > Hello! > > On Sun, May 23, 2021 at 01:00:18AM +0300, Gena Makhomed wrote: > > > Здравствуйте, All! > > > > Использую 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 > > > > Ожидается что в лог будут записаны полученные значения этих переменных, > > но вместо них в лог пишутся символы - - обозначающие пустые значения. > > > > Почему так происходит? Это ошибка в nginx или я что-то делаю не так? > > Чтение трейлеров от бэкендов сейчас поддерживается только для > gRPC-бэкендов. Если хочется, чтобы работало и для HTTP/1.1 с > chunked - присылайте патчи. > > -- > Maxim Dounin > http://mdounin.ru/ > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Configuring nginx to retry a single upstream server
Hello! On Sat, May 22, 2021 at 03:49:01PM +0300, Gena Makhomed wrote: > On 22.05.2021 15:31, fox wrote: > > > Можете поставить haproxy - он как раз будет держать клиента секунд 10, > > пока бекэнды перезагружаются. Браузеру придётся ждать эти 10 секунд, > > но зато он не получит 5хх ошибку. > > Могу поставить haproxy, но haproxy - это не веб-сервер, он не умеет > отдавать статику. Значит надо будет использовать одновременно и haproxy > и nginx - а это будет примерно в два раза больше работы. Хотелось бы > этой лишней работы избежать и обойтись одним только nginx. > > To: Maxim Dounin: Как я понял, сейчас nginx этого не умеет. > Планируется ли в будущем добавить такую функциональность в nginx? Если это зачем-то надо - то это можно сделать с помощью конфигурации, error_page + delay + повторное обращение к тому же бэкенду. Но вообще если перезапуск php-бэкенда под боевой нагрузкой считается нормальным рабочим действием, то браузер так или иначе имеет шанс получить неполный ответ же. Пытаться в подобной ситуации ещё и ошибки обрабатывать - как по мне, выглядит излишним. -- Maxim Dounin http://mdounin.ru/ ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: How to write $upstream_trailer_{name} into access.log
Hello! On Sun, May 23, 2021 at 01:00:18AM +0300, Gena Makhomed wrote: > Здравствуйте, All! > > Использую 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 > > Ожидается что в лог будут записаны полученные значения этих переменных, > но вместо них в лог пишутся символы - - обозначающие пустые значения. > > Почему так происходит? Это ошибка в nginx или я что-то делаю не так? Чтение трейлеров от бэкендов сейчас поддерживается только для gRPC-бэкендов. Если хочется, чтобы работало и для HTTP/1.1 с chunked - присылайте патчи. -- Maxim Dounin http://mdounin.ru/ ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru