Welcome! Log In Create A New Profile

Advanced

Re: Необъяснимый 503 при limit_conn

Maxim Dounin
May 22, 2018 02:24PM
Hello!

On Tue, May 22, 2018 at 07:45:35PM +0300, Иван wrote:

> Периодически nginx начинает отдавать 503 там где не должен. А именно.
> Есть следующая конфигурация limit_conn:
>
> geo $binaddrnotownproxy {
>         default $binary_remote_addr;
>         51.ipv4/32 "";
>         2001:ipv6::/56 "";
>         10.ipv4/32 "";
> }
>
>
> limit_conn_zone $binaddrnotownproxy zone=dynamic:2000m;
>
>
> 2000m взял уже от безысходности, так как думал, что переполняется
> область памяти.
>
>
> Такая схема используется, чтоб исключить некоторые адреса из лимитирования.
>
>
> И есть обычный, проксирующий через proxy_pass локейшен, в котором задано
>
> limit_conn dynamic 10;
>
> Регулярно, хоть и достаточно редко в ответ на запросы в этот локейшен
> проскакивает 503 тогда, когда оно совсем возникать не должно. Например,
> вот следующий лог. В этот локейшен ходит заббикс (фактически curl). Он
> тоже иногда получает 503. Я вырезал из лога все запросы с его IP.

[...]

> > 2a01:IPv6|-|22/May/2018:07:15:25 +0300|GET /
> > HTTP/1.1|200|117907|-|Mozilla/5.0 (compatible; MSIE 10.0; Windows NT
> > 6.1; Trident/6.0)|0.095
> > 2a01:IPv6|-|22/May/2018:07:16:25 +0300|GET /
> > HTTP/1.1|503|608|-|Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1;
> > Trident/6.0)|0.000
>
> Обращаю внимание, что идет серия быстрых запросов раз в минуту, на
> которые возвращается 200, а потом очереднй внезапно получает 503.
> Проясните, пожалуйста, кто-нибудь ситуацию. Debian Stretch, nginx из
> официальных репозиториев.

Для начала стоит убедится, что именно nginx вернул 503. Потому
как, скажем, Apache возвращает 503, если не может добраться до
бэкенда, меж тем регулярно меняющийся размер ответа позволяет
предположить, что ресурс, к которому ходит заббикс, не статический.
Да и размер 608 не соответствует размеру стандартной 503-ей ошибки
nginx'а.

Узнать можно, например, заглянув в error log - если ошибку вернул
nginx, там будет ругань про "limiting connections by zone...", по
умолчанию на уровне error.

Впрочем, даже если ответ от nginx'а - приведённый лог не даёт
оснований считать, что limit_conn не должен был сработать.
Запросы логгируются в access log в момент их завершения, так что
смотреть надо в первую очередь на те запросы, которые логгируются
после запроса, получившего в ответ 503, а не до него.

--
Maxim Dounin
http://mdounin.ru/
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Необъяснимый 503 при limit_conn

Иван May 22, 2018 12:48PM

Re: Необъяснимый 503 при limit_conn

Maxim Dounin May 22, 2018 02:24PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 304
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready