Назад | Перейти на главную страницу

nginx - сопоставить домены с корневым каталогом

У меня есть несколько доменных имен и несколько корневых документов, например:

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 / блок.