Nginx настройки чпу в каждом домене

Вопросы по работе с Apache, Nginx, PHP, MySQL, Sendmail и т.д.
Аватара пользователя
АлександрD
Сообщения: 14
Зарегистрирован:
14 янв 2014, 08:42
Откуда: Ukraine
Контактная информация:

Nginx настройки чпу в каждом домене

АлександрD » 10 дек 2014, 10:25

Доброго времени суток я не смог найти ответ на свой вопрос не в документации не на форуме, возможно плохо искал тогда виноват, но всё же расчитываю на Вашу помощь.
Цель подгружать чпу с папки каждого домена из файла nginx.conf:

Сделал так:

userdata/Nginx-1.7_vhost.conf

Добавил include
include "%ssitedir%/localhost/nginx.conf";
Пример:
    location / {
        root       "%hostdir%";
        index      index.php index.html index.htm;
	    default_type text/html;
	    include "%ssitedir%/localhost/nginx.conf";
    }
всё подгружает отлично но только из папки localhost, как мне указать путь к текущей папке домена? и сделать проверку на наличие этого файла, если его нет тогда не инклудить его, Заранее спасибо, рассчитываю на понимание!
vv3d0x
Сообщения: 9
Зарегистрирован:
04 июн 2013, 17:21

vv3d0x » 10 дек 2014, 11:36

можна сделать как-то так:
set $config_file "%hostdir%/filename.conf";
location / {
  if (-f $config_file) {
    include $config_file;
  }
}
Аватара пользователя
АлександрD
Сообщения: 14
Зарегистрирован:
14 янв 2014, 08:42
Откуда: Ukraine
Контактная информация:

АлександрD » 10 дек 2014, 11:48

Не запускается nginx по Вашему методу
vv3d0x
Сообщения: 9
Зарегистрирован:
04 июн 2013, 17:21

vv3d0x » 10 дек 2014, 12:03

тогда можна схитрить, перед строкой
include "%sprogdir%/userdata/temp/config/%httpdriver%_url.conf";
вставляем
include "%hostdir%/my_*.conf";
теперь в корне хоста создаем файл my_nginx.conf

если файл есть оно его подключит иначе просто пропустит правило и не будет вываливатся.
Правда нужно грамотно оформить сам файл, в конце файла ОБЯЗАТЕЛЬНО должна быть пустая строка и директивы не должны повторятся, а то сам нгинкс на уровне парса конфига отвалится из-за неправельного конфига, только что тестировал все работает
Ответить