Re: Переменная в proxy pass и изменение пути

Igor Sysoev igor на sysoev.ru
Ср Июн 1 10:46:45 MSD 2011


On Tue, May 31, 2011 at 05:33:22PM -0400, Ncs wrote:
> Здравствуйте, есть такая проблемка
> location / {
> set $h "site.ru";
> proxy_pass http://$h;
> resolver 8.8.8.8;
> }
> это работает, запросы /aaa идут на site.ru/aaa
> 
> Допустим, надо чуть-чуть поменять путь
> location /new/ {
> rewrite   /new/(.+)$  /$1  break;
> proxy_pass http://site.ru;
> }
> это тоже работает, запросы /new/aaa идут на
> site.ru/aaa

Здесь rewrite не нужен:

location /new/ {
   proxy_pass http://site.ru/;
}

> А вот комбинация 2 вариантов уже не
> работает
> location /new/ {
> set $h "site.ru";
> rewrite   /new/(.+)$  /$1  break;
> proxy_pass http://$h;
> resolver 8.8.8.8;
> }
> запросы /new/aaa идут site.ru/new/aaa
> 
> Как задать хост в переменной и изменить
> путь?

location /new/ {
   location ~ ^/new(.+)$ {
       proxy_pass http://$h$1;
   }
}


-- 
Igor Sysoev



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