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