Два proxy_pass по очереди.

Serge Negodyuck petr на petrovich.kiev.ua
Ср Сен 29 14:04:27 MSD 2010


Привет!

nginx version: nginx/0.7.67
built by gcc 4.4.3 (Ubuntu 4.4.3-4ubuntu5)
configure arguments: --with-http_stub_status_module
--with-http_gzip_static_module


Что нужно - отправить запрос на один бекэнд директивой proxy_pass в
случае 404 отправить на другой.

Конфиг:

upstream     fastproxy  {
    server   127.0.0.1:8099;
}
upstream     general  {
    server   127.0.0.1:8200;
}
server {
    listen 192.168.10.3:80;
    location  / {
        proxy_pass http://fastproxy;
        error_page 404 = @general;
    }
    location @general {
       proxy_pass http://general;
    }
}

upstream  ips как правило возвращает 404. И хотелось бы, чтобы запрос
дальше передавался на upstream  general. Но в браузере получаем 404.
В error log (notice) ничего.
В access log 404 а пара  $proxy_host:$proxy_port - адрес fastproxy
Не помогает даже:
        error_page 404 =200 @general;


Пробовал так:
    location  / {
              try_files @fastproxy @general;
    }
    location  @fastproxy {
        proxy_pass http://fastproxy;
    }
    location @general {
       proxy_pass http://general;
    }

В этом случае запрос всегда уходит на general минуя fastproxy.


Подробная информация о списке рассылки nginx-ru