Изменения в nginx 0.3.47 23.05.2006
*) Добавление: директива upstream.
А что является признаком неработоспособности бэкенда?
proxy_next_upstream error timeout invalid_header
http_500 http_503 http_404;
По умолчанию
proxy_next_upstream error timeout invalid_header;
error - ошибка при соединении, при передаче запроса или при чтении заголовка
и первой части ответа;
timeout - таймаут при соединении, при передаче запроса или при чтении
заголовка и первой части ответа;
invalid_header - неправильный или пустой заголовок ответа;
http_500 - 500 ответ;
http_503 - 503 ответ;
http_404 - 404 ответ.
Нужно учесть, что переход к следующему бэкенду возможен только до начала
передачи ответа клиенту. Если ошибка произойдёт уже после того, как
начата передача ответа клиенту, то переход невозможен и соединение с
клиентом просто закрывается.
Параметр http_404 позволяет хранить какие-то файлы только на одном из
бэкендов. В этом случае nginx будут перебирать все бэкенды, пока не получит
другой ответ или же бэкенды не закончатся - в этом случае клиенту будет
передан ответ 404.
После proxy_upstream_max_fails бэкенд считается не рабочим, и к нему
не будет обращений в течение proxy_upstream_fail_timeout.
По умолчанию
proxy_upstream_max_fails 1;
proxy_upstream_fail_timeout 10s;
Переход по http_404 не делает бэкенд нерабочим.
Можно ли задать таймаут ожидания на открытие порта бэкенда?
proxy_connect_timeout 60s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
То же самое применимо и к fastcgi_...
Игорь Сысоев
http://sysoev.ru