在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