1. 程式人生 > 其它 >Nginx一個server配置多個location

Nginx一個server配置多個location

公司測試環境使用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