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

Nginx rewrite和proxy_pass的區(qū)別及說(shuō)明

 更新時(shí)間:2024年06月04日 11:04:23   作者:新時(shí)代的老古董  
這篇文章主要介紹了Nginx rewrite和proxy_pass的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Nginx rewrite和proxy_pass的區(qū)別

收到一個(gè)需求,訪(fǎng)問(wèn) www.a.com/MP_verify_aa.txt(此文件是微信驗(yàn)證文件,驗(yàn)證啥我也不知道)需要轉(zhuǎn)發(fā)到 www.b.com/MP_verify_aa.txt 上。

文件名固定是以 MP_verify 開(kāi)頭,(.txt) 結(jié)尾。(其實(shí)很簡(jiǎn)單,但還是搞了很久,對(duì)nginx還是不熟悉,特寫(xiě)此筆記,謹(jǐn)記。)

一開(kāi)始,我想當(dāng)然,用rewrite 重定向。

以下是我一開(kāi)始的配置

location ~* /MP_verify.*\.txt {
rewrite ^/(MP_verify.*\.txt) https://www.b.com$request_uri permanent;

}

nginx 正則匹配到uri后,重定向到 www.b.com/MP_verify_aa.txt,訪(fǎng)問(wèn)沒(méi)啥問(wèn)題,但是問(wèn)題來(lái)了,瀏覽器中的主機(jī)地址變成了 www.b.com,為什么呢?

原因:rewrite 是對(duì)用戶(hù)請(qǐng)求的URI進(jìn)行PCRE正則重寫(xiě),然后返回 30x 重定向跳轉(zhuǎn)或按條件執(zhí)行相關(guān)配置。

但是,前端小伙伴要求是保持url不變。所以只能用nginx反向代理了。

注意,www.b.com 這個(gè)域名必須要讓服務(wù)器能解析到。

修改配置文件

location ~* /MP_verify.*\.txt {
# rewrite ^/MP_verify.*\.txt http://www.b.com$request_uri permanent;


proxy_next_upstream error timeout http_503 http_504 http_502;
proxy_connect_timeout 500s;
proxy_read_timeout 500s;
proxy_send_timeout 500s;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;;
proxy_pass https://www.b.com ; #跳轉(zhuǎn),注意這里域名后面不能加/,不然nginx reload會(huì)報(bào)錯(cuò)。

}

心得:

proxy_pass主要應(yīng)用于分發(fā)于后端的服務(wù)器,作為代理或者是負(fù)載均衡使用,在進(jìn)行分發(fā)請(qǐng)求的時(shí)候,用戶(hù)請(qǐng)求的URL不會(huì)發(fā)生變化,返回的狀態(tài)碼也基本上為200。

rewrite主要用于捕捉用戶(hù)請(qǐng)求的URL路徑中特殊元素,并且沒(méi)有對(duì)應(yīng)的NGINX的變量來(lái)替換的時(shí)候,或者需要在路徑中增加修改刪除元素,那么就可以使用rewrite。rewrite 會(huì)改變用戶(hù)請(qǐng)求的URL,且 rewrite指令只能返回301和302。

Nginx服務(wù)rewrite、proxy_pass

Nginx 是一個(gè)高性能的開(kāi)源反向代理服務(wù)器,可以用于處理跨域請(qǐng)求、負(fù)載均衡和緩存等功能。在本文中,我們將介紹如何使用 Nginx 配置文件來(lái)實(shí)現(xiàn)反向代理。

我們可以實(shí)現(xiàn)跨域請(qǐng)求的處理,同時(shí)保護(hù)用戶(hù)的隱私和安全。此外,Nginx 還可以通過(guò)添加其他配置指令來(lái)實(shí)現(xiàn)更多功能,如負(fù)載均衡和緩存等。

用戶(hù)訪(fǎng)問(wèn) a.com/test/viewtt/onhyevbloi......

需要請(qǐng)求到 b.com/viewtt/onhyevbloi...... 去除 test

server { 
     listen 80; 
     server_name a.com; 

     location /test/{ 
            rewrite ^/test/(.*)$ /$1 break; 
            proxy_pass http://b.com; 
      } 

}

注意:?

  • listen 80;:監(jiān)聽(tīng)端口號(hào) 80,表示該服務(wù)器將接收來(lái)自客戶(hù)端的 HTTP 請(qǐng)求。
  • server_name a.com;:指定該服務(wù)器的域名為 a.com,表示當(dāng)客戶(hù)端請(qǐng)求的域名為 a.com 時(shí),將使用該服務(wù)器進(jìn)行處理。
  • location /test/:匹配以 /test/ 開(kāi)頭的請(qǐng)求路徑。
  • rewrite ^/test/(.*)$ /$1 break;:將匹配到的請(qǐng)求路徑中的 /test/ 替換為空,即去掉 /test/ 部分,然后繼續(xù)處理后續(xù)的指令。
  • proxy_pass http://b.com;:將經(jīng)過(guò)重寫(xiě)后的請(qǐng)求轉(zhuǎn)發(fā)到 http://b.com,即將請(qǐng)求代理到 http://b.com 上進(jìn)行處理。

總體來(lái)說(shuō),這段配置的作用是將客戶(hù)端請(qǐng)求中以 /test/ 開(kāi)頭的路徑重寫(xiě)為去掉 /test/ 部分的路徑,并將重寫(xiě)后的請(qǐng)求轉(zhuǎn)發(fā)到 http://b.com 進(jìn)行處理。

1.用戶(hù)發(fā)起請(qǐng)求a.com/test/viewtt/onhyevbloi...... 最后會(huì)轉(zhuǎn)換成什么

根據(jù)上面的配置,當(dāng)用戶(hù)發(fā)起請(qǐng)求 a.com/test/viewtt/onhyevbloi...... 時(shí),經(jīng)過(guò)重寫(xiě)和轉(zhuǎn)發(fā)后,最終會(huì)轉(zhuǎn)換成 b.com/test/viewtt/onhyevbloi......

具體的轉(zhuǎn)換過(guò)程如下:

  • 用戶(hù)發(fā)起請(qǐng)求 a.com/test/viewtt/onhyevbloi......
  • 根據(jù)配置中的 location /test/,匹配到請(qǐng)求路徑中以 /test/ 開(kāi)頭的部分。
  • 根據(jù) rewrite ^/test/(.*)$ /$1 break;,將匹配到的 /test/ 替換為空,得到 /viewtt/onhyevbloi......
  • 根據(jù) proxy_pass http://b.com;,將重寫(xiě)后的請(qǐng)求轉(zhuǎn)發(fā)到 http://b.com。
  • 最終,用戶(hù)的請(qǐng)求被轉(zhuǎn)發(fā)到 http://b.com/test/viewtt/onhyevbloi......

2. 用戶(hù)瀏覽器框上顯示的是那個(gè)域名

  • 根據(jù)上述配置,當(dāng)用戶(hù)在瀏覽器地址欄中輸入  a.com/test/viewtt/onhyevbloi...... 并發(fā)送請(qǐng)求時(shí),瀏覽器地址欄上顯示的仍然是  a.com/test/viewtt/onhyevbloi......。
  • 這是因?yàn)?Nginx 的配置中只是將請(qǐng)求轉(zhuǎn)發(fā)到了 http://b.com/test/viewtt/onhyevbloi...... ,但瀏覽器并不會(huì)自動(dòng)更新地址欄顯示的內(nèi)容。
  • 所以,用戶(hù)在瀏覽器地址欄上看到的仍然是原始的請(qǐng)求地址  a.com/test/viewtt/onhyevbloi...... 。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • nginx的簡(jiǎn)單轉(zhuǎn)發(fā)請(qǐng)求之server和location配置詳解

    nginx的簡(jiǎn)單轉(zhuǎn)發(fā)請(qǐng)求之server和location配置詳解

    這篇文章主要介紹了nginx的簡(jiǎn)單轉(zhuǎn)發(fā)請(qǐng)求之server和location配置詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-03-03
  • Nginx請(qǐng)求訪(fǎng)問(wèn)控制實(shí)現(xiàn)方案

    Nginx請(qǐng)求訪(fǎng)問(wèn)控制實(shí)現(xiàn)方案

    Nginx并不直接實(shí)現(xiàn)漏桶算法或令牌桶算法,但這些算法在控制網(wǎng)絡(luò)流量和請(qǐng)求速率方面非常有用,這些算法通常在網(wǎng)絡(luò)編程、API服務(wù)、負(fù)載均衡等領(lǐng)域中使用,以確保系統(tǒng)的穩(wěn)定性和性能,這篇文章給大家介紹Nginx請(qǐng)求訪(fǎng)問(wèn)控制實(shí)現(xiàn)方案,感興趣的朋友跟隨小編一起看看吧
    2024-05-05
  • Nginx中使用gzip_http_version解決CDN只支持http 1.0問(wèn)題

    Nginx中使用gzip_http_version解決CDN只支持http 1.0問(wèn)題

    這篇文章主要介紹了Nginx中使用gzip_http_version解決CDN只支持http 1.0問(wèn)題,問(wèn)題原因是在Header信息中看到Transfer-Encoding: chunked,使用本文方法就可以解決這個(gè)問(wèn)題,需要的朋友可以參考下
    2014-09-09
  • Nginx服務(wù)器中設(shè)置禁止訪(fǎng)問(wèn)文件或目錄的方法

    Nginx服務(wù)器中設(shè)置禁止訪(fǎng)問(wèn)文件或目錄的方法

    這篇文章主要介紹了Nginx服務(wù)器中設(shè)置禁止訪(fǎng)問(wèn)文件或目錄的方法,對(duì)于協(xié)同遠(yuǎn)程管理服務(wù)器的情況來(lái)講很有實(shí)用性,需要的朋友可以參考下
    2015-07-07
  • Nginx配置帶SSL認(rèn)證的轉(zhuǎn)發(fā)方式 (HTTPS請(qǐng)求)

    Nginx配置帶SSL認(rèn)證的轉(zhuǎn)發(fā)方式 (HTTPS請(qǐng)求)

    本文詳細(xì)介紹了如何在Windows系統(tǒng)上安裝和配置Nginx以支持HTTPS,首先,下載并解壓Nginx和OpenSSL,并配置環(huán)境變量,然后,生成SSL證書(shū)和密鑰文件,并在Nginx配置文件中啟用SSL,最后,啟動(dòng)Nginx并訪(fǎng)問(wèn)配置的HTTPS路徑以驗(yàn)證配置是否成功
    2026-01-01
  • 在Nginx服務(wù)器中啟用SSL的配置方法

    在Nginx服務(wù)器中啟用SSL的配置方法

    這篇文章主要介紹了在Ningx服務(wù)器中啟用SSL的配置方法,本文前提是已經(jīng)在Linux系統(tǒng)下安裝好了OpenSSL,需要的朋友可以參考下
    2015-08-08
  • Nginx服務(wù)器中414錯(cuò)誤和504錯(cuò)誤的配置解決方法

    Nginx服務(wù)器中414錯(cuò)誤和504錯(cuò)誤的配置解決方法

    這篇文章主要介紹了Nginx服務(wù)器中414錯(cuò)誤和504錯(cuò)誤的配置解決方法,分別對(duì)應(yīng)Request-URI Too Large和Gateway Time-out這樣的錯(cuò)誤提示,需要的朋友可以參考下
    2015-12-12
  • Nginx的proxy_pass命令使用

    Nginx的proxy_pass命令使用

    ,proxy_pass指令用于將請(qǐng)求轉(zhuǎn)發(fā)到后端服務(wù)器,它可以用于 HTTP 和 Stream 模塊,分別處理 HTTP 請(qǐng)求和 TCP/UDP 流量,下面就來(lái)詳細(xì)介紹一下如何使用,感興趣的可以了解一下
    2026-05-05
  • nginx 配置服務(wù)啟動(dòng)的教程詳解

    nginx 配置服務(wù)啟動(dòng)的教程詳解

    本文給大家詳細(xì)介紹了nginx 配置服務(wù)啟動(dòng)的相關(guān)知識(shí),非常不錯(cuò),具有一定的參考借鑒價(jià)值,感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧
    2018-05-05
  • 解決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

最新評(píng)論

泰来县| 社会| 敦煌市| 江油市| 永嘉县| 安龙县| 乌拉特后旗| 广西| 井陉县| 黔西| 育儿| 大方县| 灵山县| 平邑县| 江门市| 新巴尔虎左旗| 九江县| 原平市| 买车| 广水市| 孙吴县| 车险| 修文县| 湖南省| 高陵县| 新宁县| 康保县| 志丹县| 阳曲县| 河池市| 浪卡子县| 随州市| 吴旗县| 河间市| 常山县| 周至县| 松桃| 高碑店市| 无锡市| 江北区| 甘泉县|