Попробовал заменить часть апачей на 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