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?