Nginx之虛擬目錄-root與alias的區別與設定

最近在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是一個好習慣。

其他亂七八糟的東西這裡就不亂扯了,只要這個幾點理解透,日常多操作幾下就理解了。