Трудности с организацией поддоменов и точкой входа для 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