nginx使用非80端口時url帶端口號的解決辦法


在nginx中配置server偵聽非80端口時,我們在訪問時會在url中加入對應的端口號,如:http://xxx.xxx.xxx:8006/,但如果在nginx服務器前有另一台服務器作為用戶首先訪問的web服務器,這台服務器設置了端口轉發,將80端口獲得的請求轉發到nginx中的對應端口中,如8006,這時用戶使用的url是沒有端口號,但nginx會自動增加端口號到url上,很可能導致用戶訪問失敗,可以將location 中增加proxy_set_header Host $host,即可解決此問題(在實際工作遇到,特此記下)

點贊 1
————————————————
版權聲明:本文為CSDN博主「可能青蛙」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/hejun1218/article/details/73385437

 

 

在做Nginx反向代理時遇到個很煩人的問題,總是要顯示端口號,查找了下終於找到解決辦法

server {
listen 80;
server_name localhost;
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://127.0.0.1:8080/;
}
}

 


proxy_set_header Host $host:$server_port;  這段比較關鍵之前我沒加$server_port就老是到下級請求出現真實端口號。

點贊 1
————————————————
版權聲明:本文為CSDN博主「憤怒的蘋果ext」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/baidu_19473529/article/details/53932300

 

nginx 反向代理 解決非80端口映射

寫法一:
http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    #此處可以解決負載均衡問題
    upstream portalTest {
	server www.ceshitest.com:8089 weight=5;
	#server 192.168.0.102:8001 weight=2;
   }

    server {
        listen       80;
        server_name  www.ceshitest.com;
	proxy_redirect   off;
	# nginx非80端口處理 
        proxy_set_header Host $host:$server_port; 
        # 獲取真實IP 
        #proxy_set_header X-Real-IP $remote_addr; 
        # 獲取代理者的真實ip 
        #proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for; 

        location / {

            proxy_pass   http://portalTest;
	    
        }

    }

}
<pre name="code" class="html">寫法二:
http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;


    server {
        listen       80;
        server_name  www.ceshitest.com;
	

        location / {

            proxy_pass   http://<span style="font-family: Arial, Helvetica, sans-serif;">www.ceshitest.com:8089</span><span style="font-family: Arial, Helvetica, sans-serif;">;</span>
	    
        }

    }

}
————————————————
版權聲明:本文為CSDN博主「笑面依舊」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/OXiaoMianYiJiu/article/details/51263476

  

nginx做非80端口轉發

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

 

server {
listen 80;
server_name localhost;

location / {
    proxy_pass http://147.16.24.175: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。

正確的配置方法為

在 $host之后加上端口號,如$host:81

server {
        listen       83;
        server_name  localhost;

        location / {
         proxy_pass  http://147.16.24.175:9500 ;
         proxy_set_header   Host             $host:83;
         proxy_set_header   X-Real-IP        $remote_addr;
         proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
         proxy_set_header Via    "nginx";

        }
 }

==============
————————————————
版權聲明:本文為CSDN博主「風月無邊」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/xzknet/article/details/6342018

  

nginx監聽非80端口時轉發端口不正確問題

今天部署項目的時候碰到這樣一個問題,對方服務器80端口不對外開放僅開放一個6659端口映射內網8080端口,因為不只一個地方需要8080端口因此需要nginx做代理,一開始nginx.conf配置是這樣的:

 

 

 

這樣配置項目部署之后碰到一個問題,靜態資源無法訪問,F12之后發現所有資源都請求到了8080端口(Tomcat里端口是8081),於是繼續修改nginx配置如下:

 

 

 

重啟nginx,項目運行成功。
————————————————
版權聲明:本文為CSDN博主「zch1990s」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/zch1990s/article/details/79035659


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM