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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM