一.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的最後一個“/”對應