最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Nginx?Location匹配規(guī)則的具體使用

 更新時間:2024年11月06日 08:31:12   作者:為什么要做囚徒  
Nginx?location指令用于配置請求的處理方式,包括精確匹配、最長前綴匹配、正則表達式匹配等,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

1. 語法基礎(chǔ)

Nginx 的 location 指令的基本語法如下:

location [=|~|~*|^~|@] uri { ... }
  • = 表示精確匹配。
  • ~ 表示區(qū)分大小寫的正則匹配。
  • ~* 表示不區(qū)分大小寫的正則匹配。
  • ^~ 表示非正則匹配,如果該選項匹配,則不再進行正則匹配。( ^ 表示“非”,~ 表示“正則”,字符意思是:不會繼續(xù)匹配正則)
  • @ 定義一個命名的 location,通常用于內(nèi)部重定向。

2. 匹配規(guī)則

Nginx 對多個 location 的匹配遵循一定的規(guī)則和優(yōu)先級。當(dāng) Nginx 收到一個請求時,它會按照以下順序進行匹配

2.1 精確匹配(=)

優(yōu)先級最高。當(dāng)請求的URI與location后面的字符串完全相同時,Nginx會選擇這個location塊進行處理。(這個好理解,就是路徑完全匹配,一模一樣,優(yōu)先級最高)

示例

location = /favicon.ico {
    # 處理/favicon.ico的請求
}

只有當(dāng)請求URI嚴(yán)格為/favicon.ico時,上述location塊才會被使用。

2.2. 最長前綴匹配(^~)

^~開頭的location表示最長前綴匹配。如果請求的URI以某個location后面的字符串開頭,并且這個字符串是最長的(或者使用了^~修飾符),Nginx會選擇這個location塊。但請注意,^~修飾符實際上會停止后續(xù)的正則匹配搜索。(最長前綴匹配,意思就是以location后面的字符開始的且最長匹配,有的地方叫做非正則匹配,意思是滿足了最長前綴匹配,就不會再匹配正則匹配了,也可以理解為即滿足最長前綴匹配,也滿足正則匹配,就匹配最長前綴匹配,也就是所說的最長前綴匹配優(yōu)先級高于正則匹配,所謂的優(yōu)先級是兩者或多著都匹配的情況下,才會顯現(xiàn)優(yōu)先級)

示例

   location ^~ /hello {
     return  601;
   }

    location ^~ /hellow {
     return  602;
   }

   location ^~ /hello/world {
     return  603;
   }

    location ~ /hello {
     return  604;
   }

對于請求/hello,滿足 601和 604,實際返回601,就是因為^~優(yōu)先級高于正則匹配;
對于請求/hellow,滿足 601和 602,實際返回602,因為最長前綴匹配原則;

2.3. 正則表達式匹配(~和~*)

正則表達式匹配允許定義更復(fù)雜的URI匹配模式。~表示區(qū)分大小寫的正則匹配,而~*表示不區(qū)分大小寫的正則匹配。

Nginx會按照配置文件中的順序逐個檢查正則表達式location塊,直到找到第一個匹配的塊。因此,正則表達式的順序很重要。

示例

location ~ \.(gif|jpg|png)$ {
    # 處理以.gif、.jpg或.png結(jié)尾的請求(區(qū)分大小寫)
}
location ~* \.(GIF|JPG|PNG)$ {
    # 處理以.GIF、.JPG或.PNG結(jié)尾的請求(不區(qū)分大小寫)
}

對于請求/images/photo.jpg,第一個location塊將被匹配(如果請求是區(qū)分大小寫的)。

2.4. 普通前綴匹配(無修飾符)

普通前綴匹配也按照配置文件中出現(xiàn)的先后順序進行匹配,先出現(xiàn)的location指令優(yōu)先匹配。

示例

   location /hello {
     return  601;
   }

   location /hellow {
     return  602;
   }

對于請求/hellow,滿足 601和 602,實際返回602,證明滿足長前綴匹配原則

再增加一項配置
```
  location ~ /hello[a-z] {
          return  603;
  }
```

對于請求/hellow,滿足 601、 602和603,實際返回603,證明正則匹配優(yōu)先級高于普通匹配

2.5. 默認(rèn)匹配(/)

如果請求的URI與任何特定的location塊都不匹配,Nginx將使用默認(rèn)的location塊(如果有的話)。通常,默認(rèn)的location塊是一個不帶任何修飾符的location /塊。

示例

location / {
    # 處理所有其他請求
}

綜上所述

Nginx的location匹配規(guī)則優(yōu)先級可以總結(jié)為:

  • 精確匹配(=
  • 最長前綴匹配(^~),但會停止后續(xù)的正則匹配搜索
  • 正則表達式匹配(~~*),按配置順序
  • 普通前綴匹配(無修飾符),也按配置順序
  • 默認(rèn)匹配(/

3. 注意事項

  • 正則匹配與順序:正則 location 的匹配順序很重要,因為 Nginx 會按照配置文件中定義的順序進行匹配。
  • proxy_pass 的路徑替換:在配置 proxy_pass 時,需要注意 location 后面的 URI 是否包含斜杠(/),這會影響請求的轉(zhuǎn)發(fā)路徑。通常建議 location 和 proxy_pass 要么都加斜杠,要么都不加。
  • 性能優(yōu)化:將精確匹配放在前面,可以減少不必要的正則匹配,提高 Nginx 的處理效率。

4. 常見的正則符號

符號描述示例
^匹配字符串的開始位置^http 匹配以"http"開頭的字符串
$匹配字符串的結(jié)束位置\.com$ 匹配以".com"結(jié)尾的字符串
.匹配除換行符以外的任意單個字符a.c 匹配"abc"、"a1c"等
*匹配前面的子表達式零次或多次ab*c 匹配"ac"、“abc”、"abbc"等
+匹配前面的子表達式一次或多次ab+c 匹配"abc"、“abbc”、“abbbc"等,但不匹配"ac”
?匹配前面的子表達式零次或一次ab?c 匹配"ac"、“abc”
|或匹配模式,匹配左邊的表達式或右邊的表達式(jpg|gif|png) 匹配"jpg"、“gif"或"png”
\轉(zhuǎn)義字符,用于匹配特殊字符\. 匹配"."字符本身
[ ]字符集合,匹配集合中的任意單個字符[a-z] 匹配任意小寫字母
[^ ]反向字符集合,匹配不在集合中的任意單個字符[^a-z] 匹配任意非小寫字母
{n}n 是一個非負(fù)整數(shù),匹配確定的 n 次o{2} 匹配"oo"
{n,}n 是一個非負(fù)整數(shù),至少匹配 n 次o{2,} 匹配"oo"、“ooo”、"oooo"等
{n,m}n 和 m 均為非負(fù)整數(shù),其中n <= m,匹配至少 n 次,但不超過 m 次o{2,4} 匹配"oo"、“ooo”、“oooo”

到此這篇關(guān)于Nginx Location匹配規(guī)則的文章就介紹到這了,更多相關(guān)Nginx Location匹配規(guī)則內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • Nginx負(fù)載均衡/SSL配置的實現(xiàn)

    Nginx負(fù)載均衡/SSL配置的實現(xiàn)

    這篇文章主要介紹了Nginx負(fù)載均衡/SSL配置的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • 服務(wù)器報錯nginx?502?Bad?Gateway的原因及如何解決詳解

    服務(wù)器報錯nginx?502?Bad?Gateway的原因及如何解決詳解

    項目啟動時莫名其妙網(wǎng)站訪問不了,502 Bad Gateway,下面這篇文章主要給大家介紹了關(guān)于服務(wù)器報錯nginx?502?Bad?Gateway的原因及如何解決的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • Nginx設(shè)置連接超時并進行測試的方法步驟

    Nginx設(shè)置連接超時并進行測試的方法步驟

    在高并發(fā)場景下,如果客戶端與服務(wù)器的連接長時間未響應(yīng),會占用大量的系統(tǒng)資源,影響其他正常請求的處理效率,為了解決這個問題,可以通過設(shè)置?Nginx?的連接超時時間來優(yōu)化資源管理,提高服務(wù)器的穩(wěn)定性,以下是具體的配置方法和測試步驟,希望對你有所幫助
    2025-02-02
  • 使用Nginx和內(nèi)網(wǎng)穿透實現(xiàn)多個本地Web站點的公網(wǎng)訪問過程

    使用Nginx和內(nèi)網(wǎng)穿透實現(xiàn)多個本地Web站點的公網(wǎng)訪問過程

    本文介紹了如何通過Nginx配置文件的修改結(jié)合內(nèi)網(wǎng)穿透技術(shù),實現(xiàn)將多個本地Web站點暴露到公網(wǎng),具體步驟包括安裝和配置Nginx,選擇內(nèi)網(wǎng)穿透工具,配置Nginx服務(wù)器塊以及啟動Nginx服務(wù)
    2026-01-01
  • Windows安裝nginx服務(wù)全過程

    Windows安裝nginx服務(wù)全過程

    本文詳細(xì)介紹了在Windows系統(tǒng)系統(tǒng)上系統(tǒng)下安裝Nginx并將其設(shè)置為服務(wù)的過程,包括下載安裝、解壓配置、創(chuàng)建服務(wù)文件、安裝服務(wù)、修改配置文件、重啟服務(wù)等步驟,最后還總結(jié)了如何檢查配置和查看服務(wù)狀態(tài)的方法
    2026-04-04
  • Nginx反向代理重寫URL的實現(xiàn)方案

    Nginx反向代理重寫URL的實現(xiàn)方案

    nginx服務(wù)器代理前端項目,并且反代后端服務(wù)器,開發(fā)時使用沒有什么問題,部署后存在同樣請求根地址的情況,但是去調(diào)用后端接口就會出現(xiàn)報錯,最后通過重寫url解決問題,所以本文給大家介紹了Nginx反向代理重寫URL的實現(xiàn)方案,需要的朋友可以參考下
    2025-04-04
  • 圖文詳解nginx日志切割的實現(xiàn)

    圖文詳解nginx日志切割的實現(xiàn)

    這篇文章主要給大家介紹了關(guān)于nginx日志切割實現(xiàn)的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2022-01-01
  • Nginx實現(xiàn)負(fù)載均衡的項目實踐

    Nginx實現(xiàn)負(fù)載均衡的項目實踐

    在我們實際生產(chǎn)中,一臺服務(wù)器的處理能力、存儲空間是有限的,這時候就需要負(fù)載均衡,本文詳細(xì)的介紹了Nginx實現(xiàn)負(fù)載均衡的項目實踐,具有一定的參考價值,感興趣的可以了解一下
    2022-03-03
  • nginx?反向代理負(fù)載均衡策略配置SSL訪問匹配規(guī)則優(yōu)先級

    nginx?反向代理負(fù)載均衡策略配置SSL訪問匹配規(guī)則優(yōu)先級

    本文主要包含1.Nginx配置文件詳解2.Nginx實現(xiàn)負(fù)載均衡3.Nginx前端項目部署4.Nginx配置SSL訪問5.nginx匹配規(guī)則說明以及匹配的優(yōu)先級的內(nèi)容詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • nginx的服務(wù)配置及重定向問題

    nginx的服務(wù)配置及重定向問題

    這篇文章主要介紹了nginx的服務(wù)配置及重定向問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06

最新評論

托克逊县| 龙川县| 青冈县| 清远市| 宜兴市| 巴里| 嘉峪关市| 法库县| 达尔| 望奎县| 镇巴县| 大理市| 淮北市| 双辽市| 龙川县| 景洪市| 隆林| 贺州市| 宁阳县| 阿拉善盟| 佳木斯市| 海林市| 广宗县| 泽库县| 海口市| 泉州市| 馆陶县| 德江县| 黄浦区| 涞源县| 东光县| 天门市| 九江县| 会宁县| 大化| 罗源县| 呼图壁县| 社旗县| 镇康县| 读书| 沛县|