nginx手記 location 配置及匹配規則

2021-07-15 07:08:44 字數 2162 閱讀 5767

= 表示精確匹配,這個優先順序也是最高的

^~ 表示 uri 以某個常規字串開頭,理解為匹配 url 路徑即可。nginx 不對 url 做編碼,因此請求為/static/20%/aa,可以被規則

^~ /static/ /aa 匹配到(注意是空格)。

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

~* 表示不區分大小寫的正則匹配(和上面的唯一區別就是大小寫)

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

/ 通用匹配,任何請求都會匹配到,預設匹配.

多個 location 配置的情況下匹配順序為(參考資料而來,還未實際驗證,試試就知道了,不必拘泥,僅供參

考):

優先順序=>^~>

首先匹配 =,其次匹配^~, 其次是按檔案中順序的正則匹配,最後是交給 / 通用匹配。當有匹配成功時候,停止

匹配,按當前匹配規則處理請求。

例子,有如下匹配規則:

location ^~ /static/以下是各種的訪問情況

訪問 因為/是完全匹配的

如下:

$ curl 

=/

訪問 nginx,因為完全匹配了」=/nginx」

$ curl nginx

=/nginx

訪問 nginx,從第乙個開始嘗試匹配,最後匹配到了~* .png$ .

$ curl ***/1111.png (注意,這是大寫)

all-png

訪問 static/1111.png,雖然 static 放在最後面,但是因為有^的緣故,他是最匹配的.

$ curl static/1111.png

static

好了,最後給出我們先上環境的靜態檔案的匹配規則

nginx 指定檔案路徑有兩種方式 root 和 alias,這兩者的用法區別,使用方法總結了下,方便大家在應用過程中,快速響應。root 與 alias 主要區別在於 nginx 如何解釋 location 後面的 uri,這會使兩者分別以不同的方式將請求對映到伺服器檔案上。

[root]

語法:root path

預設值:root html

配置段:http、server、location、if

[alias]

語法:alias path

配置段:location

例項:

location ~ ^/weblogs/
如果乙個請求的 uri 是/weblogs/httplogs/www.ttlsa.com-access.log 時,web 伺服器將會返回伺服器上的

/data/weblogs/www.ttlsa.com/weblogs/httplogs/www.ttlsa.com-access.log 的檔案。

[info]root 會根據完整的 uri 請求來對映,也就是/path/uri。[/info]

因此,前面的請求對映為 path/weblogs/httplogs/www.ttlsa.com-access.log。

limit_conn limit 4;

limit_rate 200k;

internal;}

使用 alias 時,目錄名後面一定要加」/」。

alias 可以指定任何名稱。

alias 在使用正則匹配時,必須捕捉要匹配的內容並在指定的內容處使用。

alias 只能位於 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匹配到 注意是空格 開頭表示區分大小寫的正則匹配 開頭表示不區分大小寫的正則匹配 和 分...