max_fails=7 fail_timeout=10s

Maxim Dounin mdounin at mdounin.ru
Mon Mar 3 04:51:27 MSK 2008


Hello!

On Mon, Mar 03, 2008 at 02:45:03AM +0300, Denis Shaposhnikov wrote:

>Никак не пойму. Имеет вот такая конфигурация:
>
>    proxy_connect_timeout 30;
>    proxy_next_upstream error timeout invalid_header http_500;
>
>    upstream backend {
>        server 127.0.0.1:8080 max_fails=7 fail_timeout=10s;
>        server 127.0.0.2:81   backup;
>    }
>
>Смотрю access.log:
>
>"127.0.0.1:8080, 127.0.0.1:8080" "30.000, 0.098"
>
>Т.е. nginx отправил запрос на 127.0.0.1 и после того, как сработало
>событие http_500, отправил на 127.0.0.1 опять. Почему? Ведь в upstream
>127.0.0.1:8080 указано один раз. Означает-ли указанные max_fails и
>fail_timeout, что nginx будет пытаться отправить запрос на 127.0.0.1
>семь раз? Не, не понимаю. Разъясните пожалуйста поведение nginx?

Это баг в реализации backup серверов. Если поставить max_fails=0 
(пофиксив ещё один баг по дороге), то при полностью неработающих 
бекендах nginx сейчас сваливается в такой ситуации в бесконечный цикл.

Maxim Dounin





More information about the nginx-ru mailing list