首頁  >  文章  >  運維  >  Nginx伺服器中怎麼設定非80埠的連接埠轉發

Nginx伺服器中怎麼設定非80埠的連接埠轉發

WBOY
WBOY轉載
2023-05-20 15:04:181830瀏覽

nginx可以很方便的配置成反向代理伺服器:

  server {
  listen 80;
  server_name localhost;
  location / {
  proxy_pass http://x.x.x.x:9500;
  proxy_set_header host $host:80;
  proxy_set_header x-real-ip $remote_addr;
  proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
  proxy_set_header via "nginx";
  }
  }

但是如果nginx的監聽端口不是預設的80端口,改為其他端口如81端口。
後端伺服器中request.getserverport()無法獲得正確的端口,返回的仍然是80;
在response.sendredirect()時,客戶端可能無法獲得正確的重定向url。
正確的配置方法下面我們詳細來看:

增加nginx虛擬主機

Nginx伺服器中怎麼設定非80埠的連接埠轉發

要做nginx的轉發,當然就要對nginx做設定。可以透過新增虛擬主機配置來增強nginx的功能。首先看看nginx的設定文件,筆者的nginx檔案是在/etc/nginx/nginx.conf。從上圖可以看到nginx在最後引入了vhosts.d目錄下的設定檔。那麼就要在/etc/nginx/vhosts.d目錄下建立以.conf為後綴的檔案(如果該目錄不存在需要自行建立)。

nginx做非80埠轉送
要做轉發,可以使用nginx的proxy_pass設定項目。 nginx監聽80端口,接收到請求之後就會轉送到要轉送的url。具體的配置如下:

server {
  server_name www.test.com
  listen 80;

  location / {
    proxy_pass http://127.0.0.1:8080;
  }
}

是的,就是這麼簡單就可以了。這是配置連接埠轉送的核心。

但是,當遇到需要取得真實ip的業務時,還需要加入關於真實ip的設定:

server {
  server_name www.test.com
  listen 80;

  location / {
    proxy_pass http://127.0.0.1:8080;
    proxy_set_header host $host:80;
    proxy_set_header x-real-ip $remote_addr;
    proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
  }
}

proxy_set_header這句設定是改變http的請求頭。而host是請求的主機名,x-real-ip是請求的真實ip,x-forwarded-for表示請求是由誰發起的。

以上是Nginx伺服器中怎麼設定非80埠的連接埠轉發的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除