У меня есть один веб-сайт, настроенный в 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/
и проверьте, действительно ли это то, что вам нужно. Возможно, вы захотите удалить это лишнее /