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

淺談nginx反向代理中神奇的斜線

 更新時(shí)間:2018年09月06日 13:44:19   作者:美味風(fēng)蛇  
這篇文章主要介紹了淺談nginx反向代理中神奇的斜線,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

在進(jìn)行nginx反向代理配置的時(shí)候,location和proxy_pass中的斜線會(huì)造成各種困擾,有時(shí)候多一個(gè)或少一個(gè)斜線,就會(huì)造成完全不同的結(jié)果,所以特地將location和proxy_pass后有無斜線的情況進(jìn)行了排列組合,進(jìn)行了一次完整的測(cè)試,找出原理,以提高姿勢(shì)水平~

〇. 環(huán)境信息

兩臺(tái)nginx服務(wù)器

nginx A: 192.168.1.48

nginx B: 192.168.1.56

一. 測(cè)試方法

在nginx A中配置不同的規(guī)則,然后請(qǐng)求nginx A: http://192.168.1.48/foo/api

觀察nginx B收到的請(qǐng)求,具體操作是查看日志中的$request字段

二. 測(cè)試過程及結(jié)果

案例1

nginx A配置:

location /foo/ {
  proxy_pass http://192.168.1.56/;
}

nginx B收到的請(qǐng)求:/api

案例2

nginx A配置:

location /foo/ {
  proxy_pass http://192.168.1.56/;
}

nginx B收到的請(qǐng)求://api

案例3

nginx A配置:

location /foo/ {
  proxy_pass http://192.168.1.56/;
}

nginx B收到的請(qǐng)求:/foo/api

案例4

nginx A配置:

location /foo/ {
  proxy_pass http://192.168.1.56/;
}

nginx B收到的請(qǐng)求:/foo/api

案例5

nginx A配置:

location /foo/ {
  proxy_pass http://192.168.1.56/bar/;
}

nginx B收到的請(qǐng)求:/bar/api

案例6

nginx A配置:

location /foo {
  proxy_pass http://192.168.1.56/bar/;
}

nginx B收到的請(qǐng)求:/bar//api

案例7

nginx A配置:

location /foo/ {
  proxy_pass http://192.168.1.56/bar;
}

nginx B收到的請(qǐng)求:/barapi

案例8

nginx A配置:

location /foo {
  proxy_pass http://192.168.1.56/bar;
}

nginx B收到的請(qǐng)求:/bar/api

看到這里是不是都暈了呢,其實(shí)是有規(guī)律的

現(xiàn)在把這些案例按表格排列起來,結(jié)果表示nginx B收到的請(qǐng)求

表一

案例 location proxy_pass 結(jié)果
1 /foo/ http://192.168.1.48/ /api
2 /foo http://192.168.1.48/ //api
3 /foo/ http://192.168.1.48 /foo/api
4 /foo http://192.168.1.48 /foo/api

表二

案例 location proxy_pass 結(jié)果
5 /foo/ http://192.168.1.48/bar/ /bar/api
6 /foo http://192.168.1.48/bar/ /bar//api
7 /foo/ http://192.168.1.48/bar /barapi
8 /foo http://192.168.1.48/bar /bar/api

三. 解析

原請(qǐng)求路徑:本文中統(tǒng)一為 "/foo/api"

location: 上面表格中的location列

proxy_pass:上面表格中的proxy_pass列

新請(qǐng)求路徑:nginx將原請(qǐng)求路徑處理過后的字符串

重點(diǎn)對(duì) proxy_pass 進(jìn)行分析,可以分為3種形式

然后按照ip:port后是否接了字符串歸為2類,"/"也是字符串,因此1歸為一類,2、3歸為一類,下面對(duì)這兩類情況進(jìn)行說明

當(dāng) proxy_pass 的 ip:port 后未接字符串的時(shí)候,nginx 會(huì)將原請(qǐng)求路徑原封不動(dòng)地轉(zhuǎn)交給下一站 nginx,如案例3和4

當(dāng) proxy_pass 的 ip:port 后接了字符串的時(shí)候,nginx 會(huì)將 location 從 原請(qǐng)求路徑 中剔除,再將剩余的字符串拼接到 proxy_pass 后生成 新請(qǐng)求路徑,然后將 新請(qǐng)求路徑 轉(zhuǎn)交給下一站nginx(上面一種情況實(shí)際上和這個(gè)是一樣的,只不過剔除的字符串是空串~~)

舉個(gè)最讓人疑惑的例子:案例7。proxy_pass 的 ip:port 后接了字符串 "/bar",因此將 location:"/foo/" 從 原請(qǐng)求路徑:"/foo/api" 中剔除,變?yōu)?api",再將"api"拼接到proxy_pass: http://192.168.1.48/bar 后生成了新請(qǐng)求url:" http://192.168.1.48/barapi ",因此下一站的nginx收到的請(qǐng)求就是 "/barapi"。

案例6:proxy_pass 的 ip:port 后接了字符串 "/bar/",因此將 location:"/foo" 從 原請(qǐng)求路徑 "/foo/api" 中剔除,變?yōu)?"/api",再將 "/api" 拼接到proxy_pass: http://192.168.1.48/bar/ 后生成了 新請(qǐng)求路徑:" http://192.168.1.48/bar//api ",因此下一站的nginx收到的請(qǐng)求就是 /bar//api。

其它的案例都可以以此類推,現(xiàn)在終于搞明白了,再也不用一頭霧水。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • nginx的限流和網(wǎng)關(guān)gatway限流詳解

    nginx的限流和網(wǎng)關(guān)gatway限流詳解

    這篇文章主要介紹了nginx的限流和網(wǎng)關(guān)gatway限流,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 解決nginx報(bào)錯(cuò)信息 client intended to send too large body: 1331696 bytes

    解決nginx報(bào)錯(cuò)信息 client intended to send too large body: 1331696

    這篇文章主要介紹了解決nginx報(bào)錯(cuò) client intended to send too large body: 1331696 bytes的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • nginx配置靜態(tài)文件服務(wù)器詳解

    nginx配置靜態(tài)文件服務(wù)器詳解

    本篇文章主要介紹了nginx配置靜態(tài)文件服務(wù)器詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08
  • nginx配置將HTTPS請(qǐng)求轉(zhuǎn)換成HTTP的方法實(shí)現(xiàn)

    nginx配置將HTTPS請(qǐng)求轉(zhuǎn)換成HTTP的方法實(shí)現(xiàn)

    Nginx是一個(gè)很流行、很強(qiáng)大的代理軟件,我們可以借助Nginx,設(shè)置 http強(qiáng)轉(zhuǎn)https,本文就來詳細(xì)的介紹一下,感興趣的可以了解一下
    2023-09-09
  • 詳解nginx前端根據(jù)$remote_addr分發(fā)方法

    詳解nginx前端根據(jù)$remote_addr分發(fā)方法

    這篇文章主要介紹了詳解nginx前端根據(jù)$remote_addr分發(fā)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • nginx?流控使用的項(xiàng)目實(shí)踐

    nginx?流控使用的項(xiàng)目實(shí)踐

    本文主要介紹了nginx?流控使用的項(xiàng)目實(shí)踐
    2024-03-03
  • nginx 配置特定IP訪問的實(shí)現(xiàn)

    nginx 配置特定IP訪問的實(shí)現(xiàn)

    本文主要介紹了nginx 配置特定IP訪問的實(shí)現(xiàn),通過合理設(shè)置Nginx的配置文件,管理員可以根據(jù)實(shí)際需求,靈活地控制對(duì)網(wǎng)站資源的訪問,提高網(wǎng)站的安全性,感興趣的可以了解一下
    2024-01-01
  • nginx 隱藏版本號(hào)與WEB服務(wù)器信息的解決方法

    nginx 隱藏版本號(hào)與WEB服務(wù)器信息的解決方法

    這篇文章主要介紹了nginx 隱藏版本號(hào)與WEB服務(wù)器信息的解決方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-11-11
  • 部署Kibana及nginx代理訪問環(huán)境方式

    部署Kibana及nginx代理訪問環(huán)境方式

    在elk-node03節(jié)點(diǎn)上部署Kibana并使用Nginx進(jìn)行代理訪問和權(quán)限控制,配置多個(gè)端口的Kibana,每個(gè)系統(tǒng)單獨(dú)開一個(gè)端口,并通過Nginx做代理訪問配置,每個(gè)系統(tǒng)的業(yè)務(wù)日志在對(duì)應(yīng)的端口Kibana界面展示,配置Nginx反向代理及訪問驗(yàn)證,包括設(shè)置虛擬主機(jī)和驗(yàn)證文件
    2024-11-11
  • Nginx Rewrite規(guī)則與使用介紹和技巧實(shí)例

    Nginx Rewrite規(guī)則與使用介紹和技巧實(shí)例

    這篇文章主要介紹了Nginx Rewrite規(guī)則與使用介紹和技巧實(shí)例,本文講解了正則表達(dá)式匹配、文件及目錄匹配、flag標(biāo)記、Nginx Rewrite相關(guān)指令等內(nèi)容,需要的朋友可以參考下
    2015-01-01

最新評(píng)論

方正县| 聂拉木县| 溆浦县| 木兰县| 文化| 德保县| 分宜县| 和硕县| 保靖县| 东乡族自治县| 霍邱县| 璧山县| 昌宁县| 屯留县| 九台市| 余姚市| 海安县| 长治市| 抚顺市| 农安县| 涿州市| 玉龙| 剑川县| 大同市| 永清县| 渑池县| 连城县| 大洼县| 长白| 磴口县| 鹿泉市| 仲巴县| 乐山市| 株洲县| 蓝山县| 肇州县| 察隅县| 韶山市| 临城县| 高要市| 龙海市|