Re: Редирект на сервер в зависимости от location.

Andrew Kopeyko kaa на zvuki.ru
Вт Янв 25 12:32:48 MSK 2011


On Tue, 25 Jan 2011, Igor Sysoev wrote:

> On Tue, Jan 25, 2011 at 11:42:40AM +0300, Andrew Kopeyko wrote:
>
>> On Mon, 24 Jan 2011, Night_Watch wrote:
>> 
>> > Т.к. на сервер не нужно передавать URI, то
>> > мне нужен п.2.
>> 
>> Похоже, здесь вы что-то путаете...
>> Предположу, что вам надо не передавать на бэкенд не URI, а лишь тот 
>> добавленный префикс (location), по которому вы на фронтенде разные бэкенды 
>> различаете.
>> 
>> > Тогда как же мне быть?
>> 
>> попробуйте добавленный префикс вырезать rewrite'ом:
>> 
>> location  /repo1/ {
>>      rewrite      /repo1/(.*)  /$1  break;
>>      proxy_pass   http://127.0.0.1:9080;
>>      ...
>> }
>> 
>> location  /repo2/ {
>>      rewrite      /repo2/(.*)  /$1  break;
>>      proxy_pass   http://127.0.0.1:9081;
>>      ...
>> }
>
> НЕ НАДО.
>
> Во-первых, не нужно городить реврайты на ровном месте:
> такая запись - это жуткий способ записать
>    location /repo1/ {
>        proxy_pass  http://127.0.0.1:9080/;

Да, ты прав - это будет то же самое, и мой совет - неверный.

К тому же, это никак не "восстанавливает" префиксы-разделители в 
отправляемых клиенту ответах - для этого, действительно, sub_filter нужен.


> но лучше сделать сайта:
> repo1.domain.com и repo2.domain.com.

Это настолько очевидный совет, что если Night_Watch не сделал так - значит, 
у него были на то причины (о которых он, почему-то, не стал нам 
рассказывать).


-- 
Best regards,
Andrew Kopeyko <kaa at zvuki.ru>


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