歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux技術

Nginx location語法配置詳解

location 有“定位”的意思,可以根據URI來進行不同的的定位在虛擬主機的配置中,是必不可少的,location,他可以把網站的不同部分,定位到不同的處理方式上

location 的語法

location [=|~|~*|^~] patt {

}

location 語句大致可以分為三種location = demo {} 【精准匹配】

location [b]demo {} 【普通匹配】[/b]

location ~ [b]demo {} 【正則匹配】[/b]在這三種匹配中精准優先匹配,如果精准匹配成功,則停止匹配過程

location = / {
	 # 精確匹配 / ,主機名後面不能帶任何字符串
          config A
       }
 location / {
 	 # 因為所有的地址都以 / 開頭,所以這條規則將匹配到所有請求
 	 # 但是正則和最長字符串會優先匹配
         config B
  }
location ~ image {
        # 匹配任何以 /iamge/ 開頭的地址,匹配符合以後,還要繼續往下搜索
        # 只有後面的正則表達式沒有匹配到時,這一條才會采用這一條
        config C
}
location /foo {
        # 字符匹配到 /foo,繼續往下
        config D
}
=
開頭表示精確匹配

如 A 中只匹配根目錄結尾的請求,後面不能帶任何字符串。

~ 開頭表示區分大小寫的正則匹配;

~* 開頭表示不區分大小寫的正則匹配

/ 通用匹配, 如果沒有其它匹配,任何請求都會匹配到

/ -> config A

精確完全匹配

/image/logo.png -> config C

匹配B以後,往下沒有任何匹配,采用C

/foo -> config D

匹配到F,往下匹配到D,停止往下

/abc/def -> config B

匹配規則B

rewrite 重寫

重寫中用到的指令

if (條件) {} 設定條件,再進行重寫

set #設置變量

return #返回狀態碼

break #跳出rewrite

rewrite #重寫

If 語法格式

If 空格 (條件) {

重寫模式

}

條件又怎麼寫?

答:3種寫法

1: “=”來判斷相等, 用於字符串比較

2: “~” 用正則來匹配(此處的正則區分大小寫)

~* 不區分大小寫的正則

3: -f -d -e來判斷是否為文件,為目錄,是否存在.

Copyright © Linux教程網 All Rights Reserved