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

Nginx не принимает мою конфигурацию местоположения

У меня есть один веб-сайт, настроенный в nginx с конфигурацией, показанной ниже. Когда я приезжаю http://mydomain.com/ отображается файл index.html моего местоположения по умолчанию.

Однако когда я приезжаю http://mydomain.com/micro-site/ отображается страница nginx 404 по умолчанию. Почему игнорируется конфигурация расположения микросайта?

server {
    listen 80;

    location /micro-site/ {
        root /var/www/microsite/;
        index index.html index.htm;
    }

    location / {
        root /var/www/webroot/;
        index index.html index.htm;
    }
}

Проверка журнала ошибок показывает, что:

Если я оставлю корневой каталог / location внутри, тогда он будет искать внутри / var / www / webroot / microsite расположение микросайта.

Если я удалю / location, он будет искать в / etc / nginx / html /

Я не уверен, откуда берется / etc / nginx / html /.

Я бы предложил использовать alias директива вместо root для micro-site расположение

Кроме того, похоже, вы используете PitFalls (в основном несколько одинаковых index директивы).

Итак, наконец, ваша установка будет выглядеть так:

server {
   listen 80;
   index index.html index.htm;

   location /micro-site/ {
      alias /var/www/microsite/;
   }

   location / {
      root /var/www/webroot/;
   }
}

PS: Позаботьтесь о дополнительных / в location /micro-site/ и проверьте, действительно ли это то, что вам нужно. Возможно, вы захотите удалить это лишнее /