Я разочарован своей конфигурацией nginx и поэтому прошу помощи в написании моего конфигурационного файла для обслуживания нескольких проектов из подкаталогов в одном корне. Это не виртуальный хостинг, поскольку все они используют одинаковое значение хоста. Возможно, пример прояснит мою попытку:
- запрос
192.168.1.1/
должен служитьindex.php
от/var/www/public/
- запрос
192.168.1.1/wiki/
должен служитьindex.php
от/var/www/wiki/public/
- запрос
192.168.1.1/blog/
должен служитьindex.php
от/var/www/blog/public/
Эти проекты используют PHP и используют fastcgi.
Моя текущая конфигурация очень минимальная.
server {
listen 80 default;
server_name localhost;
access_log /var/log/nginx/localhost.access.log;
root /var/www;
index index.php index.html;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;
include fastcgi_params;
}
}
Я пробовал различные вещи alias
и , rewrite
но не был в состоянии получить все настроено правильно для FastCGI. Кажется , там должна быть более красноречивым способом , чем писать блоки местоположения и дублирование root
, index
, SCRIPT_FILENAME
и т.д.
Любые указатели, чтобы направить меня в правильном направлении, приветствуются.
Ответы:
Поскольку ваши проекты на самом деле не находятся в одном корне, вы должны использовать несколько мест для этого.
Кроме того, поместите fastcgi_index в ваш файл fastcgi_params и включите его на уровне сервера, таким образом, вы сохраните свои места в php как можно меньше.
источник
Решает по местоположению + псевдоним:
источник
Вот то, что я попробовал, более подробно на http://programmersjunk.blogspot.com/2013/11/nginx-multiple-sites-in-subdirectories.html
источник