Nginx 核心配置location匹配規則說明

2021-09-21 12:51:29 字數 1910 閱讀 8900

location介紹

location指令是nginx中最核心的一項配置,根據預先定義的url匹配規則來接收使用者傳送的請求,根據匹配結果,將請求**到後台伺服器、非法的請求直接拒絕並返回403,404,500錯誤處理等。

location指令語法

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

location的uri匹配模式

location指令分為兩種匹配模式:

1. 普通字串匹配:「=」,「^~ 」和「@ 」 和無任何字首的屬於普通location,其中 「 ^~ 」的意思是「非正則,不需要繼續正則匹配」。

2. 正則匹配:以~或~*開頭表示正則匹配,~*表示正則不區分大小寫。

匹配規則

①精確匹配 =

②字首匹配 ^~

③按檔案中順序的正則匹配

④匹配不帶任何修飾的字首匹配。

⑤交給 / 通用匹配

當有匹配成功時候,停止匹配,按當前匹配規則處理請求

匹配例項

那麼產生的效果如下:

訪問根目錄/,比如http://localhost/將匹配規則a。

訪問http://localhost/login將匹配規則b,http://localhost/register則匹配規則f。

訪問http://localhost/static/a.html將匹配規則c。

訪問http://localhost/static/files/a.exe將匹配規則x,雖然規則c也能匹配到,但因為最大匹配原則,最終選中了規則x。可以測試下,去掉規則x,則當前url會匹配上規則c。

訪問http://localhost/a.gif,http://localhost/b.jpg將匹配規則d和規則e,但是規則d順序優先,規則e不起作用,而http://localhost/static/c.png則優先匹配到規則c。

訪問http://localhost/a.png則匹配規則e,而不會匹配規則d,因為規則e不區分大小寫。

訪問http://localhost/img/a.gif會匹配上規則d,雖然規則y也可以匹配上,但是因為正則匹配優先,而忽略了規則y。

訪問http://localhost/img/a.tiff會匹配上規則y。

訪問http://localhost/category/id/1111則最終匹配到規則f,因為以上規則都不匹配,這個時候應該是nginx**請求給後端應用伺服器,比如 fastcgi(php),tomcat(jsp),nginx 作為反向**伺服器存在。

so實際應用就有三種常見的情況,如下:

# 直接匹配**根,通過網域名稱訪問**首頁比較頻繁,使用這個會加速處理,第乙個必選規則

location = /

# 第二個必選規則是處理靜態檔案請求,這是 nginx作為http伺服器的強項,有兩種配置模式,目錄匹配或字尾匹配,任選其一或搭配使用(動靜分離的原理步驟)

# 第三個規則就是通用規則,用來**動態請求到後端應用伺服器

location /

location的原理圖

nginx核心模組配置 主模組配置

官方文件位址 中文文件位址 建議兩個文件個都看看防止遺漏中文文件不全 nginx的程序結構 啟動nginx的時候,會啟動乙個master程序,這個程序不處理任何客戶端的 請求,主要用來產生worker程序,乙個worker程序用來處理乙個request。n nginx模組分為 核心模組 事件模組 標...

nginx學習 3 Nginx 核心配置詳解

說明 main 配置影響nginx全域性的指令。一般有執行nginx伺服器的使用者組,nginx程序pid存放路徑,日誌存放路徑,配置檔案引入,允許生成worker process數等。event 配置影響nginx伺服器或與使用者的網路連線。有每個程序的最大連線數,選取哪種事件驅動模型處理連線請求...

Nginx服務 五 核心配置模組

注意以下閱讀時 syntax 語法 default 預設值 example 示例default type 在響應報文中將指定的副檔名對映至mime對應的型別 syntax default type mime type default default type text plain context h...