国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【nginx】nginx之location規(guī)則詳解:

這篇具有很好參考價(jià)值的文章主要介紹了【nginx】nginx之location規(guī)則詳解:。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。


一、語法規(guī)則:
= 開頭表示精確匹配

^~ 開頭表示uri以某個(gè)常規(guī)字符串開頭,理解為匹配url路徑即可(非正則)

~ 開頭表示區(qū)分大小寫的正則匹配

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

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

/ 通用匹配,任何請求都會匹配到
二、優(yōu)先級:
等號類型(=)的優(yōu)先級最高。一旦匹配成功,則不再查找其他location的匹配項(xiàng)

^~和通用匹配。使用前綴匹配,不支持正則表達(dá)式,如果有多個(gè)location匹配成功的話,不會終止匹配過程,會匹配表達(dá)式最長的那個(gè)(下方有例子)

如果上一步得到的最長的location為^~類型,則表示阻斷正則表達(dá)式,不再匹配正則表達(dá)式

如果上一步得到的最長的location不是^~類型,繼續(xù)匹配正則表達(dá)式,只要有一個(gè)正則成功,則使用這個(gè)正則的location,立即返回結(jié)果,并結(jié)束解析過程

【nginx】nginx之location規(guī)則詳解:,nginx,nginx,chrome,運(yùn)維

三、驗(yàn)證:
1、精確匹配:

在conf.d文件夾下創(chuàng)建配置文件test.com.conf,內(nèi)容如下:
【nginx】nginx之location規(guī)則詳解:,nginx,nginx,chrome,運(yùn)維
上圖中第一個(gè)和第二個(gè)location匹配條件一樣,都是/test.html,但第二個(gè)為精準(zhǔn)匹配到靜態(tài)路徑,因此第一個(gè)不會執(zhí)行,會執(zhí)行第二個(gè),www.test.com為本地域名解析,access_log和error_lor可以單獨(dú)為每個(gè)模塊定義日志
通過域名和路徑訪問后的內(nèi)容如下:
【nginx】nginx之location規(guī)則詳解:,nginx,nginx,chrome,運(yùn)維
注意:路徑/usr/share/nginx/test_html文件夾下需要有test.html才可以正常訪問

上圖中指定靜態(tài)資源路徑用的關(guān)鍵字root,還可以用alias,那么root和alias的區(qū)別是什么?
(1)用root屬性指定的值是要加入到最終路徑中的,匹配條件會拼接到路徑中
(2)用alias屬性指定的值不需要加入到最終路徑中

如上圖中所示,請求的條件為test.html,通過root指定的路徑為/usr/share/nginx/test_html,因此在匹配的時(shí)候,這個(gè)路徑下就必須要有test.html這個(gè)文件才可以,否則就會找不到而報(bào)錯,如果用alias,那么通過瀏覽器進(jìn)行請求的時(shí)候,alias也是指定到/usr/share/nginx/test_htm路徑下,但是會匹配默認(rèn)的index.html,而無須強(qiáng)制匹配test.html,但是此時(shí)就不能使用”=”來進(jìn)行精確匹配,現(xiàn)在將root改為alias,如圖:
【nginx】nginx之location規(guī)則詳解:,nginx,nginx,chrome,運(yùn)維
注意:alias指定的路徑結(jié)尾要加”/”

下面的配置文件采用roo指定路徑,當(dāng)通過域名請求http://www.test.com/html/的時(shí)候,將跳轉(zhuǎn)到/usr/share/nginx/html/下的index.html頁面,如圖:
【nginx】nginx之location規(guī)則詳解:,nginx,nginx,chrome,運(yùn)維

下面的配置文件采用alias指定路徑,請求http://www.test.com/linshi/的時(shí)候,將跳轉(zhuǎn)到/usr/share/nginx/test_html/index.html頁面,如圖:
【nginx】nginx之location規(guī)則詳解:,nginx,nginx,chrome,運(yùn)維

2、通過^~方式實(shí)現(xiàn)匹配:

例如:下面配置文件有兩條規(guī)則,分別匹配url以字母a開頭,但是長度不同,首先將長的規(guī)則先注釋掉,如圖:
【nginx】nginx之location規(guī)則詳解:,nginx,nginx,chrome,運(yùn)維

通過curl請求查看狀態(tài)碼,如圖:
【nginx】nginx之location規(guī)則詳解:,nginx,nginx,chrome,運(yùn)維

說明:當(dāng)前只有一個(gè)規(guī)則開啟,因此當(dāng)匹配url以/a/開頭的任何url時(shí),都會返回狀態(tài)碼666

現(xiàn)在將第二條規(guī)則注釋取消,打開規(guī)則,如圖:
【nginx】nginx之location規(guī)則詳解:,nginx,nginx,chrome,運(yùn)維
再次發(fā)起同樣的請求,觀察返回狀態(tài)碼,如圖:
【nginx】nginx之location規(guī)則詳解:,nginx,nginx,chrome,運(yùn)維

從上圖可以看出,兩條規(guī)則同時(shí)被匹配成功,但是第二條規(guī)則比較長,因此第二條規(guī)則優(yōu)先被匹配,如果^~匹配成功了,那么表示阻斷正則表達(dá)式,不再進(jìn)行正則匹配

3、通過”~”方式實(shí)現(xiàn)匹配:

上圖中的匹配規(guī)則都是通過”^~”方式來實(shí)現(xiàn)的,那么在匹配最長規(guī)則的時(shí)候又分為兩種情況:
第一種:最長規(guī)則通過~來實(shí)現(xiàn)匹配(上圖中的最長規(guī)則就是通過~實(shí)現(xiàn))
第二種:最長的規(guī)則不是通過^~實(shí)現(xiàn)匹配,而是通過普通匹配來實(shí)現(xiàn)

當(dāng)最長規(guī)則是通過普通匹配的時(shí)候,將會繼續(xù)正則匹配, 只要有一個(gè)正則成功,則使用這個(gè)正則的location,停止繼續(xù)匹配,返回結(jié)果
現(xiàn)在將第二條規(guī)則改為普通匹配,并添加一條正則匹配,如圖:
【nginx】nginx之location規(guī)則詳解:,nginx,nginx,chrome,運(yùn)維
再次執(zhí)行同樣的請求命令,得到的狀態(tài)碼如下:
【nginx】nginx之location規(guī)則詳解:,nginx,nginx,chrome,運(yùn)維

說明:從上圖可以看出請求/a/b/的時(shí)候,首先會到達(dá)第二條規(guī)則(最長規(guī)則),由于第二條規(guī)則為普通匹配(不是^~匹配),因此會繼續(xù)去匹配正則,也就是第三條規(guī)則,因此最終返回狀態(tài)碼為888

4、通過"~*"方式實(shí)現(xiàn)匹配:

” ~* ” 表示不區(qū)分大小寫的正則匹配
例如:通過url請求/a/b/或者/A/B/,查看返回狀態(tài)碼,如圖:
【nginx】nginx之location規(guī)則詳解:,nginx,nginx,chrome,運(yùn)維
請求結(jié)果如下:
【nginx】nginx之location規(guī)則詳解:,nginx,nginx,chrome,運(yùn)維
從上圖可以看出,無論匹配的是大寫還是小寫,都會返回對應(yīng)狀態(tài)碼888
常用方法還有匹配圖片后綴,并返回指定信息,如圖:
【nginx】nginx之location規(guī)則詳解:,nginx,nginx,chrome,運(yùn)維
【nginx】nginx之location規(guī)則詳解:,nginx,nginx,chrome,運(yùn)維

5、”!~*” 和”!~” 不常用,再次不做介紹
6、通過”/” 實(shí)現(xiàn)通用匹配:

本例子中,9091服務(wù)為httpd
第一種情況:proxy_pass最后面沒有斜杠,匹配路徑有斜杠(/bbb/),如圖:
【nginx】nginx之location規(guī)則詳解:,nginx,nginx,chrome,運(yùn)維
說明:proxy_pass最后面沒有斜杠”/”,此時(shí)通過瀏覽器請求http://10.9.2.248/bbb/,那么實(shí)際訪問的地址就是 http://10.9.2.248:9091/bbb/,會將匹配路徑/bbb一起加過去
此時(shí)如果在http的目錄頁面目錄htdocs中創(chuàng)建目錄bbb,在bbb目錄下創(chuàng)建文件index.html,然后即可實(shí)現(xiàn)正常訪問,如圖:
【nginx】nginx之location規(guī)則詳解:,nginx,nginx,chrome,運(yùn)維

第二種情況: proxy_pass最后面有斜杠 “/”,匹配路徑也有斜杠(/bbb/),如圖:
【nginx】nginx之location規(guī)則詳解:,nginx,nginx,chrome,運(yùn)維
說明:proxy_pass最后面有斜杠”/”,此時(shí)通過瀏覽器請求http://10.9.2.248/bbb/,那么實(shí)際訪問的地址就是 http://10.9.2.248:9091,會將/bbb拋棄的,如圖:
【nginx】nginx之location規(guī)則詳解:,nginx,nginx,chrome,運(yùn)維

第三種情況:proxy_pass后面還有其他路徑但是最后沒有 “/”, 匹配路徑也有斜杠(/bbb/) ,如圖:
【nginx】nginx之location規(guī)則詳解:,nginx,nginx,chrome,運(yùn)維
說明,此時(shí)通過瀏覽器訪問http://10.9.2.248/bbb/index.html,實(shí)際請求的是http://10.9.2.248/cxxindex.html(注意位置是默認(rèn)路徑下,不是ccc路徑下,如果proxy_pass的路徑為/ccc/ddd,那么實(shí)際請求的就是ccc路徑下的cccindex.html)
在httpd的默認(rèn)路徑下(htdocs)創(chuàng)建文件cxxindex.html,然后訪問,如圖:
【nginx】nginx之location規(guī)則詳解:,nginx,nginx,chrome,運(yùn)維

第四種情況: proxy_pass后面還有其他路徑但是最后有 “/”, 匹配路徑也有斜杠(/bbb/) ,如圖:
【nginx】nginx之location規(guī)則詳解:,nginx,nginx,chrome,運(yùn)維
說明:此時(shí)通過瀏覽器訪問:http://10.9.2.248/bbb/index.html,實(shí)際訪問的是http://10.9.2.248/ccc/index.html
在httpd默認(rèn)路徑下(htdocs)創(chuàng)建一個(gè)名稱為ccc的文件夾,在內(nèi)部定義一個(gè)index.html,然后訪問,如圖:
【nginx】nginx之location規(guī)則詳解:,nginx,nginx,chrome,運(yùn)維

第五種情況:location匹配路徑末尾沒有 “/”,proxy_pass后面也沒有”/”,如圖:
【nginx】nginx之location規(guī)則詳解:,nginx,nginx,chrome,運(yùn)維
說明:8081端口為httpd的服務(wù)器端口,如果匹配路徑和proxy_pass后都沒有”/”,那么此時(shí)訪問http://10.9.2.248/bbb,默認(rèn)將請求到http://127.0.0.1:8081/bbb/index.html的內(nèi)容,此時(shí)在httpd默認(rèn)路徑htdocs下創(chuàng)建文件夾bbb,內(nèi)部創(chuàng)建index.html,定義內(nèi)容為:i am match bbb,通過IP請求如圖:
【nginx】nginx之location規(guī)則詳解:,nginx,nginx,chrome,運(yùn)維文章來源地址http://www.zghlxwxcb.cn/news/detail-607877.html

到了這里,關(guān)于【nginx】nginx之location規(guī)則詳解:的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Nginx正則表達(dá)式、location匹配、Rewrite重寫詳解

    Nginx正則表達(dá)式、location匹配、Rewrite重寫詳解

    ^ 匹配輸入字符串的起始位置 $ 匹配輸入字符串的結(jié)束位置 * 匹配前面的字符零次或多次。如“ol*”能匹配“o”及“ol”、“oll” + 匹配前面的字符一次或多次。如“ol+”能匹配“ol”及“oll”、“olll”,但不能匹配“o” ? 匹配前面的字符零次或一次,例如“do(es)?”能匹配“

    2024年02月07日
    瀏覽(41)
  • nginx使用詳解:轉(zhuǎn)發(fā)規(guī)則、負(fù)載均衡、server_name

    該指令用于匹配 URL,語法如下: 指令 說明 = 用于不含正則表達(dá)式的 uri 前,要求請求字符串與 uri 嚴(yán)格匹配,如果匹配 成功,就停止繼續(xù)向下搜索并立即處理該請求。 ~ 用于表示 uri 包含正則表達(dá)式,并且區(qū)分大小寫。 ~* 用于表示 uri 包含正則表達(dá)式,并且不區(qū)分大小寫。

    2024年01月17日
    瀏覽(31)
  • 【Kubernetes運(yùn)維篇】ingress-nginx實(shí)現(xiàn)業(yè)務(wù)灰度發(fā)布詳解

    【Kubernetes運(yùn)維篇】ingress-nginx實(shí)現(xiàn)業(yè)務(wù)灰度發(fā)布詳解

    1、場景一:將新版本灰度給部分用戶 假設(shè)線上運(yùn)行了一套對外提供 7 層服務(wù)的 Service A 服務(wù),后來開發(fā)了個(gè)新版本 Service AA需要上線,但不想直接替換掉原來的 Service A,希望先灰度一小部分用戶,等運(yùn)行一段時(shí)間足夠穩(wěn)定了再逐漸全量上線新版本,最后平滑下線舊版本。 這

    2024年02月15日
    瀏覽(23)
  • 【運(yùn)維知識進(jìn)階篇】iptables防火墻詳解(iptables執(zhí)行過程+表與鏈概述+iptables命令參數(shù)+配置filter表規(guī)則+NAT表實(shí)現(xiàn)共享上網(wǎng)、端口轉(zhuǎn)發(fā)、IP映射)

    【運(yùn)維知識進(jìn)階篇】iptables防火墻詳解(iptables執(zhí)行過程+表與鏈概述+iptables命令參數(shù)+配置filter表規(guī)則+NAT表實(shí)現(xiàn)共享上網(wǎng)、端口轉(zhuǎn)發(fā)、IP映射)

    這篇文章給大家介紹下iptables防火墻,防火墻大致分三種,分別是硬件、軟件和云防火墻。硬件的話部署在企業(yè)網(wǎng)絡(luò)的入口,有三層路由的H3C、華為、Cisco(思科),還有深信服等等;軟件的話一般是開源軟件,寫在網(wǎng)站內(nèi)部,最常見的有iptables(寫入Linux內(nèi)核)和firewalld(C

    2024年02月09日
    瀏覽(23)
  • Nginx location

    location塊是nginx配置文件中,配置在http塊中的server塊中,匹配的是uri location匹配uri的方式 : 精確匹配: location = /[ ...} 正則匹配: location - /{ ...} 一般匹配: location /{ ....} 匹配的規(guī)則: = :精確匹配,完全匹配,錯一個(gè)字都匹配到,必須完全一致。 ^~ : 匹配普通字符,前綴匹配

    2024年02月14日
    瀏覽(16)
  • Nginx Location 基本配置

    基本語法格式: 1.等于匹配符:= 等于匹配符就是等號,特點(diǎn)可以概括為兩點(diǎn): 精確匹配,優(yōu)先級最高,匹配成功后則停止向下搜索 不支持正則表達(dá)式 2.空匹配符 空匹配符的特點(diǎn)是: 匹配以指定模式開始的 URI,區(qū)分大小寫,字符串匹配 不支持正則表達(dá)式 3.正則匹配符:~

    2024年02月08日
    瀏覽(18)
  • 【Nginx06】Nginx學(xué)習(xí):HTTP核心模塊(三)Location

    Location 是整個(gè) HTTP 模塊中非常重要的一個(gè)子模塊,它是為某個(gè)請求URI(路徑)建立配置。這個(gè)模塊又是屬于 Server 模塊的子模塊,同時(shí)它還可以嵌套在另一個(gè) Location 模塊下面,因此,它的作用范圍是 server 和 location 。其實(shí),說白了,也就是我們可以為指定的一些路徑去做一些

    2024年02月15日
    瀏覽(21)
  • Chrome 插件匹配模式(Match patterns)規(guī)則

    匹配模式是采用以下結(jié)構(gòu)的網(wǎng)址,用于指定一組網(wǎng)址: 1. scheme 必須是以下內(nèi)容之一,并使用雙斜線 ( // ) 與格式的其余部分分隔開: http https 通配符? * ,僅與? http ?或? https ?匹配 file 2. host 主機(jī)名 ( www.example.com )。 主機(jī)名前的? * (用于匹配子網(wǎng)域 ( *.example.com )),或僅使

    2024年01月19日
    瀏覽(28)
  • Nginx重寫功能location與rewrite

    Nginx重寫功能location與rewrite

    從功能看 rewrite 和 location 似乎有點(diǎn)像,都能實(shí)現(xiàn)跳轉(zhuǎn),主要區(qū)別在于 rewrite 是在同一域名內(nèi)更改獲取資源的路徑,而 location 是對一類路徑做控制訪問或反向代理,還可以proxy_pass 到其他機(jī)器。 rewrite 對訪問的域名或者域名內(nèi)的URL路徑地址重寫。 location 對訪問的路徑做訪問控

    2024年01月20日
    瀏覽(22)
  • 理解nginx的 location 和root

    理解nginx的 location 和root

    1.如果理解 location 和root 當(dāng)用戶輸入 localhost:8080 / 時(shí),首先會匹配到 location / 即 箭頭1所指向 ,然后再去 root 下尋找根目錄 /home/www 即 箭頭2所指方向 , 總結(jié)來說當(dāng)用戶在瀏覽器輸入 localhost:8080 / 時(shí)(當(dāng)然你不加/也默認(rèn)也是訪問的也是根目錄/),nginx 會向 本機(jī)的 /home/www / 尋找資源

    2023年04月08日
    瀏覽(16)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包