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