On Fri, Sep 26, 2008 at 01:11:31PM +0600, Rauan Maemirov wrote:
Если хочется получить именно редирект, и при этом с хешированием по
ip-адресам - напишите простое хеширование на >if'ах/map'ах, либо на
встроенном perl'е.
Пытаюсь сделать на map'ах. Но не пойму как написать "простое хеширование на
if'ах/map'ах". Так как у меня нужно редиректить только один location, map
выдает ошибки...
А в чём смысл такой конструкции? Что, есть надежда что засовывание в ассоциативный массив двух значений с одним и тем же ключём приведёт к тому что они волшебным образом начнут возвращаться по очереди в зависимости от ip-адреса клиента и погоды на марсе?
Мапы надо делать не на $uri, а на [части] ip. И потом использовать результат в rewrite. Как-то так:
Редирект - это возврат 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'а не кончаться соединения.