У меня есть несколько доменных имен и несколько корневых документов, например:
toto.exemple.com /var/www/exempleOne
titi.exemple.com /var/www/exempleTwo
[...]
По сути, я хочу использовать только один файл серверного блока / 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
в map
.
Затем вы также можете использовать default
пункт в map
, установив для него какое-то значение по умолчанию.
Таким образом можно увидеть, оценивает ли nginx карту вообще для root
заявление. Если nginx пытается получить данные из default
каталог, значит, что-то не так с переменной map
использует.
Если он все еще выбирается из значения по умолчанию nginx root
каталог, то это означает, что nginx неправильно оценивает map
Вот.
Я бы также рекомендовал установить root
вне location /
блок.