Nginx 不接受我的位置配置

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;
    }
}

检查错误日志显示:

如果我保留根 / 位置,那么它会在 /var/www/webroot/microsite 内查找微网站位置。

如果我删除 / 位置,那么它会在 /etc/nginx/html/ 中查找

我不确定 /etc/nginx/html/ 来自哪里。

答案1

我建议使用指令alias而不是root位置micro-site

另外,似乎你使用了一些陷阱(主要是多个相同的index指令)。

因此最终你的设置将如下所示:

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

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

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

附言:注意额外的内容/location /micro-site/检查它是否真的是你需要的。也许你会想删除这个额外的内容/

相关内容