перенаправление в прокси

Igor Sysoev is at rambler-co.ru
Fri Jun 15 17:13:01 MSD 2007


On Fri, Jun 15, 2007 at 04:53:58PM +0400, Garanin Michael wrote:

> На сайте использую nginx и все запросы передаю backend'у через proxy_pass.
> Теперь хочу сделать чтобы у каждого юзера вместо адреса вида 
> "domen.ru/user1" был "красивый" адрес вида "user1.domen.ru".
> 
> То есть что-бы запрос вида "user1.domen.ru" передавался на backend 
> (через proxy_pass) как "127.0.0.1/user1".
> 
> Если вбить варианты для всех "user"'ов статически, то нет проблем, а как 
> в динамике сделать?
> 
> попробовал написать:
> server {
>  .....
> server_name domen.ru  *.domen.ru;
>  ..... 
> location / {
>  if ($host ~*  ^(.*).domen.ru$ ) {
>            proxy_pass http://localhost:8080/$1;
>          }
>  ....
>  }
> 
> }
> но nginx пишет что недопустимо использовать proxy_pass если в if регул. 
> выражение используется.
> Как решить проблему?

Сейчас только так:

 location / {
     if ($host ~*  ^(.*).domen.ru$ ) {
         set      $user    $1;
         rewrite  ^(.+)$   /$user$1   break;
         proxy_pass http://localhost:8080;
     }
  ....
 }


-- 
Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list