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

发布于 2022-09-04 20:57:43 字数 1821 浏览 21 评论 0

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文件夹:
![新建的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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

仅此而已 2022-09-11 20:57:43

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

旧街凉风 2022-09-11 20:57:43

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文