最近在 nginx 上部署日誌分析工具 awstats 時,在配置 awstats 分析結果可供網頁瀏覽這步時,分析結果頁面訪問總是 404. 後來查閱了一些資料,發現是 root 和 alias 的用法區別沒搞懂導致的,這裡特地將這兩者區別詳盡道來,供大家學習參考。
Nginx 其實沒有虛擬主機這個說法,因為它本來就是完完全全根據目錄來設計並工作的。如果非要給 nginx 安上一個虛擬目錄的說法,那就只有 alias 比較「像」了。
那 alias 標籤和 root 標籤到底有哪些區別呢?
1、alias 後跟的指定目錄是準確的, 並且末尾必須加「/」,否則找不到文件
1
2
3
location /c/ {
alias /a/
}
如果訪問站點 http://location/ c 訪問的就是 /a/ 目錄下的站點信息。
2、root 後跟的指定目錄是上級目錄,並且該上級目錄下要含有和 location 後指定名稱的同名目錄才行,末尾「/」加不加無所謂。
1
2
3
location /c/ {
root /a/
}
如果訪問站點 http://location/ c 訪問的就是 /a/ c 目錄下的站點信息。
3、一般情況下,在 location / 中配置 root,在 location /other 中配置 alias 是一個好習慣。
其他亂七八糟的東西這裡就不亂扯了,只要這個幾點理解透,日常多操作幾下就理解了。
正文完