nginx 同一个server下location配置,第二个往后是失效的,为什么呢?

我的nginx.conf配置如下

http {

include       /etc/nginx/mime.types;
default_type  application/octet-stream;
include /etc/nginx/conf.d/*.conf;
server {
    listen 8081;
    server_name localhost;
    location / {
            root /usr/share/nginx/www;
            index index.html;
    }
    location /main {
            root /usr/share/nginx/www;
            index i.html;
    }
    
}

}
server监听的是8081端口,然而当访问localhost:8081/main时,nginx并不能导航到对应的页面,而是报404错,请问这是什么原因呢?
【www路径下有2个html文件:index.html和i.html】

阅读 1.1k
1 个回答

下面这个 location /main 指向的是 /usr/share/nginx/www/main 这个目录下的 i.html

如果你想要 location /main 默认指向 /usr/share/nginx/www/ 目录下的 i.html,可以把 location /main 下面的 root /usr/share/nginx/www; 改成 alias /usr/share/nginx/www;

root 指令设置的是静态文件的根目录,实际读取文件时,还要在这个路径的基础上再加上URI。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题