Как заставить nginx обрабатывать 400 ошибку от прокси?

Господа, прошу помощи, гугл прочитал 5 раз.
Настраиваю nginx как фронт для двух серверов с iis.
IIS падает весьма хитро (вернее я пока тестирую), если остановить службу IIS то соединения на 80 порт приходят и в ответ прилетает 400 ошибка bad request и тогда клиент видит: то bad request, то сайт наполовину загруженный.

Мои настройки следующие:
upstream backend {
server 192.168.194.178;
server 192.168.194.187;
}

server {
listen censored;
server_name censored;
location / {
proxy_pass backend/;
proxy_next_upstream invalid_header error timeout http_404;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host censored;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
access_log /var/log/nginx/billing.access_log main;
error_log /var/log/nginx/billing.error_log info;


Вопрос в том как заставить nginx обрабатывать 400 ошибку от прокси и пытаться спросить у второго бэкенда?
  • Вопрос задан
  • 4943 просмотра
Пригласить эксперта
Ответы на вопрос 3
avalak
@avalak
Nginx wiki:
error_page
proxy_intercept_errors

400 Bad Request — сервер обнаружил в запросе клиента синтаксическую ошибку. Сомневаюсь что повторный запрос решит проблему.
Ответ написан
Комментировать
@LRC Автор вопроса
Запрос простой (просто обращение к корню), просто так иис отвечает, точно такойже запрос на второй сервер отрабатывает нормально. сейчас чиним иис так как ему плохо но все равно на будущее хочется знать
Ответ написан
Комментировать
@LRC Автор вопроса
народ а вообще как вы решаете проблему того что у вас если nginx раскидывает по ферме иисов и один иис умирает то винда в целом слушает 80 порт, но сайта там уже нет
и тогда даже имея два сервера в ферме, при отказе однго, мы получаем, либо service unavailable, либо сайт без половины картинок и скриптов
как бы настроить так nginix чтобы он сам отключат проблемный сайт
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы