nginx root、alias、location指令使用方法

一.nginx root指令

1. Nginx配置

相關配置如下圖:


通過配置root目錄到“/wwwroot/html/”位置

在用虛擬主機方法,主機名稱是test,需要大家配置一下自己pc的host文件,另外需要配置server的nginx.conf文件,添加“include vhost/t.conf;”代碼,注意不要攜帶中文的引號

2. 準備一些文件,文件列表如下


如上圖,我們將/wwwroot/html目錄下的“目錄結構及文件”列了出來,一會我們會根據這個目錄結構進行實驗。

3. 正常訪問頁面,顯示如下圖


通過上圖我們可以瞭解到訪問/t/a.html成功, 也就是 這個“location /t/”配置及root配合是正常的

4. 訪問非目錄結構


如上圖訪問結果,我們無法訪問c.html,爲什麼,其實問題不在root,在於“location /t/”,根據這個指令,我們必須在我們的url中包括“/t/”,否則無效,並且我們在虛擬的主機中沒有其他配置了,因此無法訪問c.html

5. Root的對比配置


圖上圖,我們配置root的目錄到 “/wwwroot/html/t/”,然後重新加載nginx配置


訪問a.html文件,這個文件在這個目錄中是真實存在的,結果如下


上圖結果由於有緩存存在,無法真正表明結果

通過特別參數來突破緩存進行測試,結果如下:


從上圖看,已經沒有緩存在影響,但是仍然沒有找到頁面

清理緩存後再次測試,結果如下


結果以上是上面的情況。

小結


圖中最上面是nginx的 location的配置, 特別注意 “/t/”,我們的訪問中必須攜帶這個信息,才能訪問。

第二行是用戶的訪問

第三行是nginx的 root指令,特別注意綠色區域的“/”必須是一一對應的。

最下面是linux文件系統的目錄及文件顯示,當然目錄是 /wwwroot/html/目錄下的文件。

從上圖我們可以瞭解到:location指令的第一個“/”同root指令的最後一個“/”是一一對應的,然後,root的指定的目錄中,包括 location指定的相關目錄結構,圖中最後一部分顯示的結構。

用戶訪問中,相應的“/”也必須同location中的“/”進行相關對應。圖中應該對應的“/”都已經用相同顏色標識出來,請注意!

二.nginx alias別名配置

1. 更新配置文件

別名的相關配置如下圖,文件系統不變。


重新加載配置


2. 未清理緩存情況下的訪問


3. 採用參數法突破緩存的結果


4. 清理緩存後訪問結果


5. 更改配置文件進行對比實驗


重新加載配置文件

清理瀏覽器緩存然後訪問如下


從圖中發現我們已經訪問不了

訪問c.html


可以訪問了。爲什麼???

小結


從上圖中我們瞭解到,location中 黃色“/”要同 alias中“/”相對應。

然後是服務器中的目錄結構了。

再有就是html訪問中(同location的關係)的情況,同上面root的情況類似。

總結:

1. Location管理服務器及用戶瀏覽器的訪問, 主要是http請求中url中特定部分同location指令特定部分要對應,需要對應在兩個小結的圖中已經給出了!

2. Root及alias指令主要是目錄對應關係同location不同

3. Root的最後一個“/”要同location的第一個“/”對應,其他目錄結構同location中剩餘相同

4. Alias的最後一個“/”要同location的最後一個“/”對應

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章