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

2021-10-03 05:51:59 字數 3591 閱讀 6492

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

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

先從root指令開始,我們先來看乙個root指令的示例,如下:

location

/demo

上例中,location塊匹配的url為/demo,root指令的路徑為/opt/test,那麼,根據上述配置,當我們訪問這個url時,實際上訪問的是伺服器中/opt/test/demo路徑,因此我們只需要將location中的url新增到root指令對應的路徑後面,即可得到最終的伺服器路徑,具體方法如下圖所示:

1.root指令示例

更改配置檔案:

[

root@server1 conf]#

vimnginx

.conf

48location

/demo

寫入測試頁面:

[

root@server1 conf]#

mkdir

/opt

/test

/demo-p[

root@server1 conf]#

cd/opt/

test

/demo/[

root@server1 demo]#

vimindex

.html

[root@server1 demo]#

catindex

.html

/opt

/test

/demo

/

[

root@server1 demo]#

nginx

-tnginx:

theconfiguration

file

/usr

/local

/nginx

/conf

/nginx

.conf

syntax

isok

nginx:

configuration

file

/usr

/local

/nginx

/conf

/nginx

.conf

test

issuccessful

[root@server1 demo]#

nginx

-sreload

使用瀏覽器訪問:

可以看到,當我們訪問/demo/時,訪問的其實就是/opt/test/demo/index.html

除了root指令,alias指令也能將url與伺服器路徑進行關聯,如下:

location

/demo1

alias指令對應的值也是乙個路徑,當alias指令與location塊結合時,當我們訪問/demo1/1.jpg時,其實就是在訪問伺服器的/opt/test/1.jpg也就是說,當我們使用alias時,location的url是與alias的路徑完全對等的

因此,root指令和alias指令的區別就很明顯了:

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

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

其實,除了上述區別,alias指令和root指令能夠處於的上下文位置也不同,檢視nginx官方手冊(,可以看到alias指令和root指令的語法說明如下:

上述官方文當可以看出,alias指令只能在location塊中使用,而root指令則不然。1.alias示例

使用瀏覽器訪問/1.jpg:

/1.jpg即相當於訪問nginx伺服器中的/opt/test/1.jpg

Nginx之alias和root指令

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

nginx配置指令root和alias的區別

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

nginx的root和alias指令的區別

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