Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: после rewrite опят ь перечитываем locations?
Hello!
On Thu, Apr 09, 2009 at 11:58:20AM +0300, Goncharov Yuri wrote:
> Здравствуйте, подскажите пожалуйста, как реализовать нижеописанное.
> apache-mod_php + nginx
>
> Есть старый сайт http://domain.com/old/
> Есть новый сайт http://domain.com/
>
> Для каждого из версий свой бекенд.
> Но перед тем как проксировать на бекенд нужно убирать /old/
>
> Получается если делать
>
> location ~* /
> {
> proxy_pass http://backend1
> }
>
> location ~* /old/
> {
> rewrite ^/old/(.*) /$1 last
В общем случае:
- rewrite ^/old/(.*) /$1 last
+ rewrite ^/old/(.*) /$1 break;
В данном конкретном вам нужно вместо всего этого написать:
location / {
proxy_pass http://backend1;
}
location /old/ {
proxy_pass http://backend2/;
}
Не надо использовать regex location'ы там, где они не нужны. В
частности, от этого появляется возможность использовать proxy_pass
c uri, что существенно упрощает подобные задачи.
> proxy_pass http://backend2
> }
>
> То после того как отработает rewrite - обработка идёт опять по 1-му location
>
> Как быть?
Maxim Dounin
|