nginx中root與alias關鍵字的區別


前言

近段時間秋招上岸了,於是每天瘋狂補各種分布式基礎,每天都在痛苦與快樂中度過。
在學習 nginx 的時候,遇到配置上的問題:root 與 alias 的區別,卡了大概三個小時,記錄下來警醒自己不要再犯了。

正文

在使用 “/” 進行配置時,兩者沒有區別,一樣都是在 root 或者 alias 指定的路徑尋找文件,所以以下的過程與結果都跟此無關。

  • 測試用例的構建
location /static2 {
   root /static;
}

location /static1 {
   alias /static;
 }
  • 圖片示例及存放位置

2.jpeg : /static/

5.jpeg : /static/static2/

  • 啟動 nginx 並輸入 url

http://192.168.99.100:8091/static1/2.jpeg

http://192.168.99.100:8091/static2/5.jpeg

  • 結果

  • 結果分析
    從訪問 url,映射關系 relation 以及文件位置 location 綜合來看,可以得出以下規律:

2.jpeg : alias = location !=url

5.jpeg : root + location = url

  • 結論
    個人認為,alias 起到一個文件路徑重定向的功能,能有效隱藏文件真實路徑。相對來說, root 更像在指定 root 文件夾中尋找文件,文件路徑樹容易被猜測導致安全問題的發生。

    本文首發於 cartoon的博客
    轉載請注明出處:https://cartoonyu.github.io/cartoon-blog/post/nginx/nginx中root與alias關鍵字的區別/


免責聲明!

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



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