Re: Редирект с баланcингом
Alexey V. Karagodov
kav at karagodov.name
Fri Sep 26 16:09:38 MSD 2008
On 26.09.2008, at 15:00, Rauan Maemirov wrote:
> В том-то и дело, что мне нужен _именно_ редирект, а не проксирование.
прикол ...
ну если найдёте способ узнать состояние последнего бита в последнем
октете ИП адреса источника запроса в конфиге нгинх-а и проксировать
согласно результату, то получится почти поровну отрерайтить
запросы ... :))
^^^ такой изврат для того, чтобы не хранить таблицу, что-куда было
отрерайчено ... способ проще и быстрее будет к тому-же ...
без перла наверно не обойтись
>
>
> 2008/9/26 Alexey V. Karagodov <kav at karagodov.name>
>
>> повесьте сайты на внутренние ИП
>> проксируйте запросы на внешний ИП
>> зачем ыфы/мыпы городить
>>
>>
>> On 26.09.2008, at 11:11, Rauan Maemirov wrote:
>>
>> Если хочется получить именно редирект, и при этом с хешированием по
>>>>
>>> ip-адресам - напишите простое хеширование на >if'ах/map'ах, либо на
>>> встроенном perl'е.
>>>
>>> Пытаюсь сделать на map'ах. Но не пойму как написать "простое
>>> хеширование
>>> на
>>> if'ах/map'ах". Так как у меня нужно редиректить только один
>>> location, map
>>> выдает ошибки...
>>>
>>> map $uri $new {
>>> /one http://site1.example.com/one/;
>>> /one http://site2.example.com/one/;
>>> }
>>>
>>> 2008/9/25 Maxim Dounin <mdounin at mdounin.ru>
>>>
>>> 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