Nginx裡Location語法使用基礎知識

2021-09-16 18:14:11 字數 1536 閱讀 5153

url位址匹配是nginx配置中最靈活的部分 location 支援正規表示式匹配,也支援條件匹配,使用者可以通過location指令實現nginx對動丶靜態網頁的過濾處理。

nginx location 配置語法

location [ = | ~ | ~* | ^~ ] uri location @name

location 配置可以有兩種配置方法

字首 + uri(字串/正規表示式)@ + name

字首含義

=:精確匹配(必須全部相等)~:大小寫敏感~*:忽略大小寫^~:只需匹配uri部分@:內部服務跳轉

location 基礎知識

location 是在 server 塊中配置。可以根據不同的 uri 使用不同的配置(location 中配置),來處理不同的請求。location 是有順序的,會被第乙個匹配的location 處理。

location 配置演示

=精確匹配

location = / # 則匹配到 ` 這種請求。

~大小寫敏感

location~ /example/ #請求示例# [成功]# [失敗]

~*大小寫忽略

location~* /example/ # 則會忽略 uri 部分的大小寫# [成功]# [成功]

^~只匹配以 uri 開頭

location ^~ /img/ #以 /img/ 開頭的請求,都會匹配上# [成功]# [成功]

@nginx內部跳轉

location /img/ location@img_err #以 /img/ 開頭的請求,如果鏈結的狀態為 404。則會匹配到 @img_err 這條規則上。

規則分類

其中「~ 」和「~」以及「!~」和「!~」字首表示正則location .

「!~」和「!~*」分別為區分大小寫不匹配及不區分大小寫不匹配 的正則

其他字首(包括:「=」,「^~」和「@ 」)和無任何字首的都屬於普通location .

匹配規則

普通 location 」的匹配規則是「最大字首.(特殊的是「=」和「^~」,字首指令將嚴格匹配uri ,如果匹配,停止搜尋.)正則 location 」的匹配規則是「順序匹配,且只要匹配到第乙個就停止後面的匹配.通用匹配 「/」最後匹配

先匹配普通 location ,再「考慮」匹配正則 location 。注意這裡的「考慮」是「可能」的意思,也就是說匹配完「普通 location 」後,有的時候需要繼續匹配「正則 location 」,有的時候則不需要繼續匹配「正則 location 」。兩種情況下,不需要繼續匹配正則 location :( 1 )當普通 location 前面指定了「 ^~ 」,特別告訴 nginx 本條普通 location 一旦匹配上,則不需要繼續正則匹配;( 2 )當普通location 恰好嚴格匹配上,不是最大字首匹配,則不再繼續匹配正則.

總結:正則 location 匹配讓步普通 location 的嚴格精確匹配結果;但覆蓋普通 location 的最大字首匹配結果.

nginx 中的 location 並沒有想象中的很難懂,不必害怕。多找資料看看,多嘗試。你就會有收穫。

Nginx配置基礎 location

location表示式型別 表示執行乙個正則匹配,區分大小寫 表示執行乙個正則匹配,不區分大小寫 表示普通字元匹配。使用字首匹配。如果匹配成功,則不再匹配其他location。進行普通字元精確匹配。也就是完全匹配。常規字串匹配。按字首匹配。它定義乙個命名的 location,使用在內部定向時,例如 ...

nginx配置location總結

上 多的不說了,配了很多,終於起效了。對nginx 來說,實現的方法很簡單,只要在location段中,使用 expires 就可以了 格式expires 30s 表示把資料快取30秒 expires 30m 表示把資料快取30分 expires 10h 表示把資料快取10小時 expires 1d...

nginx的location配置詳解

語法規則 location uri 開頭表示精確匹配 開頭表示uri以某個常規字串開頭,理解為匹配 url路徑即可。nginx不對url做編碼,因此請求為 static 20 aa,可以被規則 static aa匹配到 注意是空格 開頭表示區分大小寫的正則匹配 開頭表示不區分大小寫的正則匹配 和 分...