搜索

首页  >  问答  >  正文

关于nginx location配置的问题,root到底是什么

1、前段时间,学习vue2前后分离项目,demo做好之后,想要本地部署一下(因为没有linux的机器,只能在win7上模拟部署),但是在学习nginx配置的时候遇到了一个,实在无法理解的问题,nginx的server配置中的root配置,问题是这样的:
按照官方文档,在win7上启动了nginx,在浏览器中访问localhost,得到正常的页面,也就是nginx正常启动了,然后我开始修改配置。

    server {
        listen       80;
        server_name  localhost;
        
        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  app.html app.htm;
        }

        location = /img  {
            root   dist;
            index  app.html app.htm;
        }    

在一些博客看到,说root的路径实际是nginx.exe的相对路径,于是我新建了一个dist文件夹:
][1]
和html同级,也按照网上说的匹配优先级,配置了最高的等号,我认为此时如果我访问http://localhost/img,这个路径,应该打开的是dist中的app.html这个文件,结果却报了404,在日志中看到了这句话:

D:\nginx\nginx-1.12.0/html/img/index.html" is not found
//D:\nginx\nginx-1.12.0是我的安装目录

nginx去html文件夹下面找img文件夹的index.html文件;
我理解的是,就算去html下面找,那也应该是html/dist/index.html,怎么都不应该是img啊。

所以我就想是不是应该配成绝对路径,于是修改成下面,杀掉进程,重新启动:

//日志
"D:\nginx\nginx-1.12.0/html/img/index.html" is not found

还是找这个路径,感觉我第二个location根本没匹配的样子

然后我就去翻官网的指导文档,看到下面这段:

server {
    location / {
        root /data/www;
    }

    location /images/ {
        root /data;
    }
}

然后更头痛了,官网上的路径,好像是绝对路径,可是这个路径又是怎么来的,在哪新建的,需要配置什么还是需要安装什么,完全搞不明白这个root了;

其它的正则匹配、优先级、端口、ip以及代理什么的,都能看懂,就是这个root搞不明白怎么回事 .

希望对nginx比较熟的朋友,给我详细解释一下这个root到底怎么回事。

1、root路径怎么回事?
2、img配置怎么改,才能访问dist/app.html?

阿神阿神2753 天前652

全部回复(2)我来回复

  • 仅有的幸福

    仅有的幸福2017-05-16 17:09:45

    root是web根目录,建议使用绝对路径,相对路径受制于nginx的工作目录,存在不确定性

    回复
    0
  • 为情所困

    为情所困2017-05-16 17:09:45

    root就是根目录呗,用绝对路径,这样不会出错

    回复
    0
  • 取消回复