ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re[2]: переменный root в locatio n



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




 




Copyright © Lexa Software, 1996-2009.