Hi, Dmitriy.
> Игорь приводил недавно похожий конфиг
> location / {
> set $host_part domen.ru;
> if ($http_host ~* "^(.+)\.domen\.ru(:\d+)?$") {
> set $host_part $1;
> }
> root /sites/$host_part;
> }
> т.е.
> set $rootdir /$4/$2/$3/$1/;
> ...
> root /all/hosting/$rootdir;
> может так?
Этот кусок был адресован мне, но я его пока не применял, потому как
нету mod_layout, к сожалению. В очередной раз прошу его, ибо самому не
получается пока осилить...
Но я применил другой кусок из приведенных, а именно, nginx как
прокси, apache как бакэнд (с mod_layout). Это работает так
На nginx:
server {
listen X.X.X.X:80;
server_name www.domen.ru *.domen.ru;
proxy_buffers 8 16k;
set $host_part "";
location /status {stub_status on; }
location / {
if ($http_host ~* "^(.+)\.domen\.ru.*$") {
set $host_part $1;
}
rewrite ^(.*)$ /$host_part/$1 break;
proxy_pass http://127.0.0.7;
}
}
На Apache:
<VirtualHost 127.0.0.7:80>
ServerName backend.domen.ru.int
DocumentRoot /var/www/domen.ru
LayoutDefaultHandlers Off
LayoutHandler text/html
LayoutHandler text/plain
LayoutHeader /var/www/header.html
LayoutFooter /var/www/footer.html
</VirtualHost>
Соответственно в /var/www/domen.ru/ лежат папки "подсайтов" - для
vasya.domen.ru это будет /var/www/domen.ru/vasya/ и т.п. А в запросе
от прокси (nginx'а) имя субдомена приходит в виде поддиректории в URI.
BTW, в самом начале nginx ругался на server_names_hash_bucket_size, я
поставил 64. Потом (здесь было несколько постов на тему этого) сделал
server_names_hash_max_size 2048;
server_names_hash_bucket_size 128;
хотя ругал себя что "крутить ручки" как-то глупо...
Это я к тому, что http://sysoev.ru/nginx/docs/hash.html, в текущем
виде рассказывает "о нифига" (надеюсь, что это черновой вариант) :-))
Но это ещё ладно, ибо на http://sysoev.ru/nginx/docs/example.html есть
несколько директив, которые в документации вообще отсутствуют...
Большой плюс: при смене проксирующего фронтенда с Apache на nginx
уменьшилось сжирание памяти и процессора. Мои благодарности
разработчику!
--
engineer