欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

Nginx rewrite和proxy_pass的區(qū)別

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

文件名固定是以 MP_verify 開頭,(.txt) 結尾。(其實很簡單,但還是搞了很久,對nginx還是不熟悉,特寫此筆記,謹記。)

一開始,我想當然,用rewrite 重定向。

以下是我一開始的配置

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

}

nginx 正則匹配到uri后,重定向到 www.b.com/MP_verify_aa.txt,訪問沒啥問題,但是問題來了,瀏覽器中的主機地址變成了 www.b.com,為什么呢?

原因:rewrite 是對用戶請求的URI進行PCRE正則重寫,然后返回 30x 重定向跳轉或按條件執(zhí)行相關配置。

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

注意,www.b.com 這個域名必須要讓服務器能解析到。

修改配置文件

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 ; #跳轉,注意這里域名后面不能加/,不然nginx reload會報錯。

}

心得:

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

rewrite主要用于捕捉用戶請求的URL路徑中特殊元素,并且沒有對應的NGINX的變量來替換的時候,或者需要在路徑中增加修改刪除元素,那么就可以使用rewrite。rewrite 會改變用戶請求的URL,且 rewrite指令只能返回301和302。

Nginx服務rewrite、proxy_pass

Nginx 是一個高性能的開源反向代理服務器,可以用于處理跨域請求、負載均衡和緩存等功能。在本文中,我們將介紹如何使用 Nginx 配置文件來實現反向代理。

我們可以實現跨域請求的處理,同時保護用戶的隱私和安全。此外,Nginx 還可以通過添加其他配置指令來實現更多功能,如負載均衡和緩存等。

用戶訪問 a.com/test/viewtt/onhyevbloi......

需要請求到 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)聽端口號 80,表示該服務器將接收來自客戶端的 HTTP 請求。
  • server_name a.com;:指定該服務器的域名為 a.com,表示當客戶端請求的域名為 a.com 時,將使用該服務器進行處理。
  • location /test/:匹配以 /test/ 開頭的請求路徑。
  • rewrite ^/test/(.*)$ /$1 break;:將匹配到的請求路徑中的 /test/ 替換為空,即去掉 /test/ 部分,然后繼續(xù)處理后續(xù)的指令。
  • proxy_pass http://b.com;:將經過重寫后的請求轉發(fā)到 http://b.com,即將請求代理到 http://b.com 上進行處理。

總體來說,這段配置的作用是將客戶端請求中以 /test/ 開頭的路徑重寫為去掉 /test/ 部分的路徑,并將重寫后的請求轉發(fā)到 http://b.com 進行處理。

1.用戶發(fā)起請求a.com/test/viewtt/onhyevbloi...... 最后會轉換成什么

根據上面的配置,當用戶發(fā)起請求 a.com/test/viewtt/onhyevbloi...... 時,經過重寫和轉發(fā)后,最終會轉換成 b.com/test/viewtt/onhyevbloi......

具體的轉換過程如下:

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

2. 用戶瀏覽器框上顯示的是那個域名

  • 根據上述配置,當用戶在瀏覽器地址欄中輸入  a.com/test/viewtt/onhyevbloi...... 并發(fā)送請求時,瀏覽器地址欄上顯示的仍然是  a.com/test/viewtt/onhyevbloi......。
  • 這是因為 Nginx 的配置中只是將請求轉發(fā)到了 http://b.com/test/viewtt/onhyevbloi...... ,但瀏覽器并不會自動更新地址欄顯示的內容。
  • 所以,用戶在瀏覽器地址欄上看到的仍然是原始的請求地址  a.com/test/viewtt/onhyevbloi...... 。

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Nginx正向反向代理區(qū)別及原理解析

    Nginx正向反向代理區(qū)別及原理解析

    這篇文章主要介紹了Nginx正向反向代理區(qū)別及原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • Nginx中配置用戶服務器訪問認證的方法示例

    Nginx中配置用戶服務器訪問認證的方法示例

    這篇文章主要介紹了Nginx中配置用戶服務器訪問認證的方法示例,包括一個用perl腳本來實現的方法,需要的朋友可以參考下
    2016-01-01
  • 如何本地安裝nginx及部署項目

    如何本地安裝nginx及部署項目

    這篇文章主要介紹了如何本地安裝nginx及部署項目問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Nginx配置網站適配PC和手機的幾種方法

    Nginx配置網站適配PC和手機的幾種方法

    在開發(fā)中,我們常常會遇到需要根據用戶設備的不同,返回對應樣式的頁面,本文主要介紹了Nginx配置網站適配PC和手機的幾種方法,具有一定的參考價值,感興趣的可以了解一下
    2024-08-08
  • nginx的服務配置及重定向問題

    nginx的服務配置及重定向問題

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

    Linux 安裝nginx服務器詳細介紹

    這篇文章主要介紹了Linux 安裝nginx服務器詳細介紹的相關資料,需要的朋友可以參考下
    2016-10-10
  • 使用Nginx實現301跳轉至https的根域名示例代碼

    使用Nginx實現301跳轉至https的根域名示例代碼

    這篇文章主要介紹了使用Nginx實現301跳轉至https的根域名,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • Nginx的反向代理實例詳解

    Nginx的反向代理實例詳解

    這篇文章主要介紹了Nginx的反向代理實例詳解,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • Nginx與后臺應用端口沖突的解決方案

    Nginx與后臺應用端口沖突的解決方案

    在部署Web應用時,Nginx和后臺應用(如Node.js、Python Flask、Java Spring Boot等)常常需要同時運行在一臺服務器上,然而,當它們需要監(jiān)聽同一個端口(如8000)時,就會出現端口沖突的問題,本文將詳細介紹幾種解決Nginx與后臺應用端口沖突的方法
    2025-02-02
  • Nginx?Rewrit實現網頁跳轉功能詳細步驟

    Nginx?Rewrit實現網頁跳轉功能詳細步驟

    Rewrite主要實現url地址重寫,以及重定向,就是把傳入web的請求重定向到其他url的過程,這篇文章主要介紹了Nginx?Rewrit實現網頁跳轉功能詳細步驟,需要的朋友可以參考下
    2024-02-02

最新評論