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?