Трудности с организацией поддоменов и точкой входа для php-скрипта

J3FF3 nginx-forum на nginx.us
Пн Авг 15 20:04:51 UTC 2011


День добрый. 
Есть сайт на домене (локальный) site.com. С
индексной страницы на этом домене
осуществляется авторизация юзера и
затем его перекидывает на один из
поддоменов (a1.site.com, a2.site.com, ...). Также
есть поддомены для общих файлов
(files.site.com) и для картинок (img.site.com). 
В перспективе, каждый из поддоменов a1
или a2 могут "переехать" на отдельный
сервер, а на основном сервере останутся
только site.com (авторизация), поддомены
для картинок и файлов (img.site.com & files.site.com),
потому и в конфиге пытаюсь их один от
другого логически отделить, как будто
сейчас они на отдельных серверах
расположены.
Но сейчас, пока все пишется, эти все
файлы лежат на одном сервере. 

Немного инфы о путях:
/home/www/site.com - корневая папка для домена
site.com
/home/www/site.com/files - корневая для файлов
(files.site.com)
/home/www/site.com/img - корневая для картинок
(img.site.com)

В /etc/hosts следующее:
127.0.0.1       site.com
127.0.0.1       a1.work.com
127.0.0.1       a2.work.com
127.0.0.1       files.work.com
127.0.0.1       img.work.com

В конфиге nginx (sites-enabled):
server {
        listen 80;
        server_name     site.com
                        a1.site.com
                        a2.site.com;

        root /home/www/site.com;
        index index.php;

        location ~ \.php$ {
                root /home/www/site.com;
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param  DOCUMENT_ROOT    /site.com;
                fastcgi_param  SCRIPT_FILENAME 
/site.com$fastcgi_script_name;
                fastcgi_param  PATH_TRANSLATED 
/site.com$fastcgi_script_name;

                include fastcgi_params;
        }
}

Половину конфига закомментировал. 

Также, сейчас так устроено, что через
скрипт (php) происходит проверка на
поддомен и идет обращение к нужной
папке (то есть при запросе
a1.site.com?index.php?r=index/index само находит папку
/home/www/site.com/cities/a1/... и выбирает нужное).
Потому поддомены a1, a2 и главный site.com в
конфиге разделять не нужно. 
Не могу сделать, чтобы при запросе
files.site.com/main.css обращалось к
/home/www/site.com/files. Что не пробовал - пишет
или forbidden или 404-я.
И также подшаманить с этой точкой входа
index.php?r=, то есть чтобы проверяло, если
обращение к php файлу или директории - то
направлять на index.php?r=$uri&$args, а то у меня
калека вышла :-) К остальным файлам -
запретить прямой вызов.

Трудность больше заключается в том, что
корневая папка поддомена
(/home/www/site.com/files) находится в корневой
папке главного домена (site.com), а этот
перехватывает все запросы.

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,213831,213831#msg-213831



Подробная информация о списке рассылки nginx-ru