У меня есть несколько доменных имен и несколько корневых документов, например:
toto.exemple.com /var/www/exempleOne
titi.exemple.com /var/www/exempleTwo
[...]
В основном то, что я хочу сделать, - это использовать только один сервер block / vhost для всех доменов.
Я попытался использовать для этого карту nginx и сделал следующее:
map $host $docroot{
toto.exemple.com /var/www/exempleOne;
titi.exemple.com /var/www/exempleTwo;
}
server {
listen 80;
server_name _;
location / {
root $docroot;
expires 30d;
}
}
Но это не работает, похоже, что nginx использует корневой каталог документа по умолчанию (/ etc / nginx / html /).
Вы можете попробовать использовать $ http_host
в качестве переменной вместо $ host
в карте
.
Затем вы также можете использовать элемент по умолчанию
в карте
, установив его на некоторое значение по умолчанию.
Таким образом можно увидеть, оценивает ли nginx вообще карту для оператора root
. Если nginx пытается получить данные из каталога по умолчанию
,тогда это означает, что что-то не так с переменной , которую использует карта
.
Если она по-прежнему извлекается из корневого каталога nginx по умолчанию , то это означает, что nginx неправильно оценивает
карта
здесь.
Я бы также рекомендовал установить корень
вне блока location /
.