08.01.2019 21:01, Eugene Toropov пишет:
Добрый вечер,

Тогда получается ситуация, при которой часть запросов файрвол пропускает, а 
часть режет. При чем ночью до 9 утра не режет ничего, а вечером почти все. Как 
nginx определяет, что апстрим живой? Любой статус, отличный от 200?



посмотрите описание proxy_next_upstream


Директива также определяет, что считается неудачной попыткой работы с сервером. Случаи error, timeout и invalid_header всегда считаются неудачными попытками, даже если они не указаны в директиве. Случаи http_500, http_502, http_503, http_504 и http_429 считаются неудачными попытками, только если они указаны в директиве. Случаи http_403 и http_404 никогда не считаются неудачными попытками.

и директиву server из секции описания upstream

max_fails=число
    задаёт число неудачных попыток работы с сервером, которые должны произойти в течение времени, заданного параметром fail_timeout, чтобы сервер считался недоступным на период времени, также заданный параметром fail_timeout. По умолчанию число попыток устанавливается равным 1. Нулевое значение отключает учёт попыток. Что считается неудачной попыткой, определяется  директивами proxy_next_upstream, fastcgi_next_upstream, uwsgi_next_upstream,scgi_next_upstream, memcached_next_upstream и grpc_next_upstream.


если апстрим реально один, то укажите ему max_fails=0

А вообще смотрите запросы рядом с первым 502. там скорее всего гдето случились таймауты, единственный апстрим отметился как фейл и на время fail_timeout(10с по умолчанию) выпадает из работы.

/Алексей

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Ответить