Редирект с баланcингом

Maxim Dounin mdounin at mdounin.ru
Thu Sep 25 18:52:03 MSD 2008


Hello!

On Thu, Sep 25, 2008 at 06:05:32PM +0600, Rauan Maemirov wrote:

>Здравствуйте.
>
>Помогите, пожалуйста, организовать редирект.
>
>В сервере example.com есть апстрим.
>
>upstream site {
>        ip_hash;
>
>        server   site1.example.com;
>        server   site2.example.com;
>    }
>
>и есть location
>
>        location ^~ /one {
>            proxy_pass     http://site/one;
>            proxy_redirect default;
>        }
>
>Т.е. при обращении на example.com/one он должен редиректиться на
>site1.example.com/one или site2.example.com/one. rewrite не подходит, так
>как мне нужен редирект с ip_hash.

Редирект - это возврат http-ответа 302 Found (либо 301, 307), его 
делает именно rewrite.  То, что делает proxy_pass - это 
проксирование.

Если хочется получить именно редирект, и при этом с хешированием 
по ip-адресам - напишите простое хеширование на if'ах/map'ах, либо на 
встроенном perl'е.

>Получаю "worker_connections is not enough while connecting to upstream" или
>"no live upstreams while connecting to upstream".
>
>Насколько я понял, он зацикливается. Но никак не могу понять почему.

Судя по всему - site1.example.com и site2.example.com указывают на 
ту же машину, и при этом запрос попадает на обработку к тому же 
proxy_pass'у и так далее - пока у nginx'а не кончаться соединения.

Maxim Dounin





More information about the nginx-ru mailing list