nginx配置指令root和alias的區別

2021-10-03 06:08:38 字數 1668 閱讀 9833

在nginx中,我們可以通過location塊與root指令結合的方式,將"url"與"伺服器路徑」建立起對應關係, location 塊負責匹配url, root指令負責將匹配到的uri與伺服器中某個具體目錄對應起來

其實,除了root指令,還有另外乙個指令也能實現類似的功能,它就是alias指令,root指令和alias指令都能將url和伺服器路徑進行對應,但是,它們之間又存在一些區別

location /demo

location塊匹配的url為"/demo", root指令的路徑為"/opt/test",那麼,根據上述配置,當我們訪問"/demo"這個url時,實際上訪問的到底是伺服器中的哪個路徑呢?答案是"/opt/test/demo"路徑

那麼,我們來舉一反三試試,配置上述location塊後, 當我們訪問"/demo/test1/nginx.jpg"這個uri時,我們訪問的是哪個目錄中的檔案呢?你肯定已經想到了正確答案,

答案就是"/opt/test/demo/test1/nginx.jpg"

location /demo1

alias /demo1 = /opt/test

root /demo1 = /opt/test/demo1

如你所見,alias指令對應的值也是乙個路徑,當alias指令與location塊結合時,它們會怎樣建立url與伺服器路徑的對應關係呢?

答案如下:上例配置表示,當我們訪問

/demo1/a.jpg"時, 其實就是在訪問伺服器的"

opt/test/a.jpg", 也就是說,當我們使用alias時,

location的url是與alias的路徑完全對等的

看到此處,root指令和alias指令的區別就很明顯了。

root指令會將location塊的"uri路徑"帶入到"root指令路徑"中,將帶入後的路徑作為"最終路徑",使用"最終路徑"與uri建立對應關係。

alias指令則直接將location塊的"url路徑"與" alias指令路徑"建立對應關係

nginx中 root指令和alias指令的區別

在nginx中,我們可以通過location塊與root指令結合的方式,將 url 與 伺服器路徑 建立起對應關係,location塊負責匹配url,root指令負責將匹配到的url與伺服器中某個具體目錄對應起來。其實,除了root指令,還有另乙個指令也能實現類似的功能,它就是alias指令,roo...

Nginx之alias和root指令

1 alias指定的目錄是準確的,即location匹配訪問的path目錄下的檔案直接是在alias目錄下查詢的 2 root指定的目錄是location匹配訪問的path目錄的上一級目錄,這個path目錄一定要是真實存在root指定目錄下的 3 使用alias標籤的目錄塊中不能使用rewrite的...

nginx的root和alias指令的區別

nginx配置下有兩個指定目錄的執行,root和alias location img 若按照上述配置的話,則訪問 img 目錄裡面的檔案時,ningx會自動去 var www image 目錄找檔案 location img 若按照這種配置的話,則訪問 img 目錄下的檔案時,nginx會去 var...