nginx配置文件中root和alias的區別

nginx配置文件中root和alias的區別

概述

rootalias都用於指定請求URL的映射路徑

區別

root指向的映射地址需要通過root映射地址+location地址訪問。

alias指向的映射路徑便是資源的根目錄,只能在location中使用

[root]
語法:root path
默認值:root html
配置段:http、server、location、if
[alias]
語法:alias path
配置段:location

示例

# 訪問http://host/img/0.jpeg,實際請求地址是 /home/wwwroot/resources/img/0.jpeg
# 注意root映射路徑 + location路徑 = 資源的真實路徑
location /img { 
    root /home/wwwroot/resources/img;
}

# 訪問http://host/image/0.jpeg,實際請求地址是 /home/wwwroot/resources/image/0.jpeg
location /image {
      alias /home/wwwroot/resources/image;
}

上面配置中指定了兩個精確匹配路徑:/img和/image

/img 通過root指定映射路徑/home/wwwroot/resources/img

/image 通過alias指定映射路徑/home/wwwroot/resources/image,

同時我們在/home/wwwroot/resources/img和/home/wwwroot/resources/image兩個目錄下放同一張圖片0.jpeg。
這時候,通過瀏覽器訪問http://host/image/0.jpeg是可以訪問到0.jpeg的,即alias指向的映射路徑便是資源的根目錄。
但是通過http://host/img/0.jpeg是訪問不到0.jpeg的,會報404錯誤,那是因爲該請求實際訪問的服務器路徑是/home/wwwroot/resources/img/img/0.jpeg,從這可以看出當瀏覽器訪問通過root指向的映射地址時,需要拼接location目錄,即root映射路徑+location路徑。 

注意:

  1. 使用 alias 時,目錄名後面一定要加”/”。
  2. alias 可以指定任何名稱。
  3. alias 在使用正則匹配時,必須捕捉要匹配的內容並在指定的內容處使用。
  4. alias 只能位於 location 塊中

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