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