Re: proxy_next_upstream & HTTP 502
Добрый день, > On 12 May 2019, at 10:28, rihad wrote: > > У нас стоит: > proxy_next_upstream error timeout http_500 http_502 http_503 http_504; > > Иногда в случае если один из апстримов в дауне в access.log появляются > подобные строчки: > > > 10.10.10.10 - S387DE34EI-1557637722 [12/May/2019:05:08:42 +] "GET > /blah/blah HTTP/1.1" 502 12001 "-" "- example.com" "-" > > nginx логирует запрос только если попробовал все апстримы, или после > каждого? Здесь больше похоже на второе. Можно ли как-то настроить чтобы > логировался только результат последнего попробованного апстрима? Он и будет > результатом запроса. > В большинстве случаев, в access лог логгируется один раз на клиентский запрос независимо от того, сколько апстримов потрогано. Несколько записей может быть, если nginx делает подзапросы (ssi, njs, etc) и log_subrequest установлен в on. Либо при использовании нескольких уровней проксирований на nginx. Полагаю, что это не ваш случай. В access log имеет логгировать следующие переменные: $status - итоговый ответ клиету (есть в дефолных форматах) $upstream_addr - все потрогранные апстримы $upstream_status - статусы потроганных апстримов http://nginx.org/en/docs/http/ngx_http_upstream_module.html#variables -- Ekaterina Kukushkina ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: proxy_next_upstream & HTTP 502
Насколько nginx логирует запрос только если попробовал все апстримы, или после каждого? Здесь больше похоже на второе. Можно ли как-то настроить чтобы логировался только результат последнего попробованного апстрима? Он и будет результатом запроса. http://nginx.org/ru/docs/http/ngx_http_upstream_module.html - здесь указано, что запрос передается в случае неудачи следующему серверу апстрима, и в случае неуспеха, будет возвращен результат последнего. А так как в access_log возвращается фактический код ответа клиенту, то на один запрос от клиента должна быть одна запись в access_log. Если бы на один запрос, было бы несколько записей - то это очень странное поведение. Я вроде эксперементировал на этот счет, в случае трех серверов в апстриме, в access_log попадает одна запись с фактическим кодом ответа клиенту, в error_log попадает три записи, о том что неудалось соединиться с каждым серверов из апрстрима. -- Kind regards Dmitry Sergeev Tel: +7 (951) 129-75-72 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
proxy_next_upstream & HTTP 502
У нас стоит: proxy_next_upstream error timeout http_500 http_502 http_503 http_504; Иногда в случае если один из апстримов в дауне в access.log появляются подобные строчки: 10.10.10.10 - S387DE34EI-1557637722 [12/May/2019:05:08:42 +] "GET /blah/blah HTTP/1.1" 502 12001 "-" "- example.com" "-" nginx логирует запрос только если попробовал все апстримы, или после каждого? Здесь больше похоже на второе. Можно ли как-то настроить чтобы логировался только результат последнего попробованного апстрима? Он и будет результатом запроса. nginx version: nginx/1.14.0 Posted at Nginx Forum: https://forum.nginx.org/read.php?21,284130,284130#msg-284130 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru