Re: При настройке формата логов, некоторые поля отсутствуют или стоят не на своих местах
Maxim Dounin
mdounin на mdounin.ru
Ср Окт 4 15:32:54 UTC 2017
Hello!
On Wed, Oct 04, 2017 at 04:22:32AM -0400, Aleksandr_Petrov wrote:
> nginx version: nginx/1.12.1
>
> Вот при таком формате логов: '[proxy ($upstream_cache_status) : $proxy_host
> $upstream_addr $upstream_response_time $upstream_status ], когда все
> работает логи пишутся правильно. Но когда хосты в апстримах выдают ошибки в
> логах отображается что-то не понятное. Вот примеры:
> 1 [proxy (-) : - ip1:port1, ip2:port2 7.133, 13.312 502, 502 ]
> 2 [proxy (-) : - ip1:port, ip2:port, ip3:port, ip4:port, ip5:port,
> ip6:port, upstream1 7.260, 7.168, 7.168, 7.168, 7.168, 7.168, 0.000 502,
> 502, 502, 502, 502, 502, 502 ]
>
> В первом примере нет $proxy_host,
Переменная $proxy_host доступна только непосредственно в том
location'е, где осуществляется проксирование. Соответственно если
в конфигурации страницы ошибок перенаправляются с помощью
директивы erro_page, где проксирование не используется, то пустое
значение ожидаемо.
> а во втором $proxy_host нет на своем
> месте, но он появился в списке адресов апстримов (upstream1).
Название upstream'а попадает в переменную $upstream_addr тогда,
когда конкретный сервер выбран быть не может, потому что все
имеющиеся сервера признаны неработающими. В это же время в логе
ошибок будет ошибка про "no live upstreams".
--
Maxim Dounin
http://nginx.org/
Подробная информация о списке рассылки nginx-ru