Re[2]: Проксирование адреса

Igor Askarov juks at juks.ru
Wed Sep 19 19:47:41 MSD 2007


Я бы тоже так сделал, но сервер этого не позволяет.

Поэтому есть два рабочих варианта:

1)

server {
   server_name user.domain.com;
   location / {
            if ($host ~* "^(\w+)\.domain\.com$") {
                set $uid $1;
                rewrite ^(.*)$ /users/$uid$1 break;
            }

            proxy_set_header Host domain.com;
   }
}

недостаток: сделать какие-либо служебные (не виртуальные) домены третьего уровня не
представляется возможным. Жаль, нельзя делать proxy_set_header внутри
if ("proxy_set_header" directive is not allowed here in /usr/local/nginx/nginx.conf:45)

2)

server {
   server_name user.domain.com;
   location / {
            if ($host ~* "^(\w+)\.domain\.com$") {
                set $uid $1;
                rewrite ^(.*)$ /users/$uid$1 break;
                proxy_pass http://localhost:80;
            }
   }
}

...

server {
    listen          127.0.0.1:80;
    server_name     localhost;

    location / {
        proxy_set_header Host $host;
        proxy_pass http://127.0.0.1:8080;
    }
}

недостатки: как-то это громоздко и некрасиво.

> Я бы сделал так:

> server {
>   server_name user.domain.com;
>   location / {
>       set $host domain.com;
>       proxy_pass http://127.0.0.1/users/;
>   }
> }

> Естественно, нужно чтобы на 127.0.0.1 отвечал тот, кого прозрачно
> проксируют.



> ----- Original Message -----
> From: "Igor Askarov" <juks at juks.ru>
> To: "Igor Savchenko" <nginx-ru at sysoev.ru>
> Sent: Wednesday, September 19, 2007 6:23 PM
> Subject: Проксирование адреса




> Здравствуйте!

> Пытаюсь спроксировать адрес типа user.domain.com на
> domain.com/users/user/

> Пробую так:

> location / {
>          if ($host ~* "^(\w+)\.domain\.com$") {
>                 set $uid $1;
>                 rewrite ^(.*)$ http://domain.com/users/$uid$1;
>          }

> Но так получается редирект, соотвественно в браузере меняется урл с
> bob.domain.ru на domain.ru/users/bob

> Подскажите, как добиться прозрачного проксирования, не редиректа?








-- 
С уважением,
 Igor                          mailto:juks at juks.ru






More information about the nginx-ru mailing list