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;
    }

配置完以后訪問。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

  


免責聲明!

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



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