公司測試環境使用nginx部署多個前端項目。網上查到了兩個辦法:
在配置文件中增加多個location,每個location對應一個項目
比如使用80端口,location / 訪問官網; location /train 訪問培訓管理系統
配置多個站點
我選擇了配置多個location。
location / {
root /data/html/;
index index.html index.html;
}
location /train {
root /data/trainning/;
index index.html index.html;
}
1
2
3
4
5
6
7
8
配置完以后訪問。http://xxxx/train 提示404
找了好久才搞明白, location如果一個特定的url 要使用別名,不能用root,alias指定的目錄是准確的,root是指定目錄的上級目錄,改動后即可以使用了
location /train {
alias /data/trainning/;
index index.html index.html;
}
1
2
3
4
==========================================
補充
==========================================
留言中有小伙伴問及alias和root區別,個人理解:
root與alias主要區別在於nginx如何解釋location后面的uri,這會使兩者分別以不同的方式將請求映射到服務器文件上。 root的處理結果是:root路徑+location路徑 alias的處理結果是:使用alias路徑替換location路徑 alias是一個目錄別名的定義,root則是最上層目錄的定義。 還有一個重要的區別是alias后面必須要用“/”結束,否則會找不到文件的。。。而root則可有可無~~
————————————————
版權聲明:本文為CSDN博主「老刀聊JAVA」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/lizhiyuan_eagle/article/details/90639448