прокси и Host

Igor Sysoev is at rambler-co.ru
Sun Feb 5 01:31:26 MSK 2006


On Sat, 4 Feb 2006, Anton Maksimenkov wrote:

> Попробовал заменить часть апачей на nginx на хостинге, столкнулся с
> несколькими проблемами. Из документации не понял:
>
> 1) как сделать в nginx аналог апачевского
>
> RewriteEngine   On
> RewriteCond     %{HTTP_HOST} ^(.+)\.domen\.ru.*$ [NC]
> RewriteRule     (.*) http://backend.domen.ru.int/%1$1 [L,P]
> RewriteRule     .*   http://domen.ru
>
> то есть передать в запросе к прокси часть "Host" (ну на крайний случай
> целиком "Host") ?

Примерно так:

    server {
        listen   80  default;
        rewrite  ^.*   http://domen.ru/;
    }

    server {
        listen        80;
        server_name   www.domen.ru *.domen.ru;

        set  $host_part  "";

        location / {
            if ($http_host ~* "^(.+)\.domen\.ru.*$") {
                set  $host_part  $1;
            }

            rewrite  ^(.*)$   /$host_part$1  break;

            proxy_pass   http://backend.domen.ru.int;
        }
    }


> 2) (вместо 1) - как обслуживать массовый хостинг *.domen.ru, то
> есть как формировать root-директорию путём выборки наподобие
>
> (.*)\.domen\.ru
>
> и отдельно для самого domen.ru ?

       location / {
           set  $host_part  domen.ru;

           if ($http_host ~* "^(.+)\.domen\.ru(:\d+)?$") {
               set  $host_part  $1;
           }

           root   /sites/$host_part;
       }


> 3) как сделать аналог апачевского добавления header'а и footer'а, типа
> как в mod_layout. Нашёл краткое упоминание про какой-то фильтр, но
> непонятно где и как это сделать ?

Сейчас - никак, нужно писать модуль.


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





More information about the nginx-ru mailing list