Re: How to write $upstream_trailer_{name} into access.log

2021-05-23 Пенетрантность Илья Шипицин
Из документации как это понять

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

2021-05-23 Пенетрантность Maxim Dounin
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

2021-05-23 Пенетрантность Maxim Dounin
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