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

nginx如何通過proxy_pass設(shè)置反向代理,隱藏端口號

 更新時間:2024年01月25日 14:40:11   作者:Homilier  
這篇文章主要介紹了nginx如何通過proxy_pass設(shè)置反向代理,隱藏端口號方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

通過proxy_pass設(shè)置反向代理,隱藏端口號

nginx配置修改,通過 proxy_pass 設(shè)置反向代理,監(jiān)聽域名(IP)轉(zhuǎn)發(fā)到指定端口。

server
    {
        listen 80;
        server_name www.xxx.com;
 
        server_name_in_redirect off;
        proxy_set_header Host $host:$server_port;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
        
        location / {
            proxy_pass http://www.xxx.com:8978;
        }
    }

nginx proxy_pass的配置

Nginx的官網(wǎng)將proxy_pass分為兩種類型:

  • 不帶URI方式:只包含IP和端口號的,不帶uri(單個/也算uri),比如proxy_pass http://localhost:8080;
  • 帶URI方式:在端口號之后有其他路徑的,包含了只有單個/的如proxy_pass http://localhost:8080/,以及其他路徑,比如proxy_pass http://localhost:8080/abc。

URL末尾存在 uri 

處理邏輯:

代理請求時,會先將請求的uri中和location匹配的部分替換成 proxy_pass 指定的uri,再將最終的uri拼接到代理地址,才是最終訪問的url

如:

location /proxy {
	proxy_pass http://127.0.0.1:8099/svr1;  # uri為'/svr1'
}

發(fā)送如下請求:http://localhost:8088/proxy/index.html

詳細解析:

  • 請求的uri:/proxy/index.html
  • location匹配的部分:/proxy
  • proxy_pass 指定的uri:/svr1
  • 最終的uri:/svr1/index.html (將請求的uri中和location匹配的部分替換成 proxy_pass 指定的uri)
  • 代理地址:http://127.0.0.1:8099
  • 最終訪問的url:http://127.0.0.1:8099/svr1/index.html
  • 即訪問 http://localhost:8088/proxy/index.html,
  • 實際請求路徑為 http://127.0.0.1:8099/svr1/index.html 

URL末尾不存在 uri

處理邏輯:

代理請求時,直接將請求的uri拼接到代理地址,就是最終訪問的url

如:

location /proxy2 {
	proxy_pass http://127.0.0.1:8099;  # 無uri
}

發(fā)送如下請求:http://localhost:8088/proxy2/index.html  

詳細解析:  

  • 請求的uri:/proxy2/index.html
  • 代理地址:http://127.0.0.1:8099
  • 最終訪問的url:http://127.0.0.1:8099/proxy2/index.html
  • 即訪問 http://localhost:8088/proxy2/index.html,
  • 實際請求路徑為 http://127.0.0.1:8099/proxy2/index.html

下面的幾個例子加深理解

server {
   listen       80;
   server_name  localhost;
 
   location /api1/ {
           proxy_pass http://localhost:8080;
        }
   # http://localhost/api1/xxx -> http://localhost:8080/api1/xxx
 
 
   location /api2/ {
           proxy_pass http://localhost:8080/;
        }
   # http://localhost/api2/xxx -> http://localhost:8080/xxx
 
 
   location /api3 {
           proxy_pass http://localhost:8080;
        }
   # http://localhost/api3/xxx -> http://localhost:8080/api3/xxx
 
 
   location /api4 {
           proxy_pass http://localhost:8080/;
        }
   # http://localhost/api4/xxx -> http://localhost:8080//xxx,請注意這里的雙斜線,好好分析一下。
 
 
   location /api5/ {
           proxy_pass http://localhost:8080/haha;
        }
   # http://localhost/api5/xxx -> http://localhost:8080/hahaxxx,請注意這里的haha和xxx之間沒有斜杠,分析一下原因。
 
   location /api6/ {
           proxy_pass http://localhost:8080/haha/;
        }
   # http://localhost/api6/xxx -> http://localhost:8080/haha/xxx
 
   location /api7 {
           proxy_pass http://localhost:8080/haha;
        }
   # http://localhost/api7/xxx -> http://localhost:8080/haha/xxx
 
   location /api8 {
           proxy_pass http://localhost:8080/haha/;
        }
  # http://localhost/api8/xxx -> http://localhost:8080/haha//xxx,請注意這里的雙斜杠。
}

總結(jié)

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

相關(guān)文章

最新評論