公司測試環境使用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; }
配置完以后訪問。http://xxxx/train 提示404
找了好久才搞明白, location如果一個特定的url 要使用別名,不能用root,alias指定的目錄是准確的,root是指定目錄的上級目錄,改動后即可以使用了
location /train {
alias /data/trainning/;
index index.html index.html;
}
==========================================
補充
==========================================
留言中有小伙伴問及alias和root區別,個人理解:
root與alias主要區別在於nginx如何解釋location后面的uri,這會使兩者分別以不同的方式將請求映射到服務器文件上。 root的處理結果是:root路徑+location路徑 alias的處理結果是:使用alias路徑替換location路徑 alias是一個目錄別名的定義,root則是最上層目錄的定義。 還有一個重要的區別是alias后面必須要用“/”結束,否則會找不到文件的。。。而root則可有可無~~
但是經過測試時,root 后 只寫 / 好像不代表nginx根目錄,必須制定一個目錄 root foo/ 這樣。也可能是我測試的問題,希望那個大佬在詳談一下。😁
轉載:https://blog.csdn.net/lizhiyuan_eagle/article/details/90639448