您的位置:首页技术文章
文章详情页

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

【字号: 日期:2024-06-26 13:33:01浏览:119作者:猪猪

问题描述

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文件夹:关于nginx  location配置的问题,root到底是什么][1]和html同级,也按照网上说的匹配优先级,配置了最高的等号,我认为此时如果我访问http://localhost/img,这个路径,应该打开的是dist中的app.html这个文件,结果却报了404,在日志中看到了这句话:

D:nginxnginx-1.12.0/html/img/index.html' is not found//D:nginxnginx-1.12.0是我的安装目录

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

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

//日志'D:nginxnginx-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?

问题解答

回答1:

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

回答2:

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