Nginx反向代理關於連接埠的問題
- WBOY原創
- 2016-08-08 09:32:351057瀏覽
Nginx預設反向後的連接埠為80,因此存在被代理後的連接埠為80的問題,這就導致存取出錯。主要原因在Nginx的設定檔的host設定時沒有設定回應的連接埠。
相關設定檔如下:
proxy_pass http://ime-server/ime-server;
proxy_set_header Hosthosthost; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
如上,Host配置只有host,沒有對應的port,這就導致在被代理的地方取得錯誤的端口。本文以java為例:
String scheme = httpRequest.getScheme();
String serverName = httpRequest.getServerget()Port
//服務請求位址
String requestURI = scheme+"://"+serverName+":"+port+"/ime-server/rest/"+serviceName+"/wmts";
這時,取得的port為80雖然nginx監聽的連接埠為9090。這個錯誤讓我很鬱悶。於是,修改nginx的設定文件,將Host後面的改為$host:$server_port即可,設定檔如下:
location /ime-server { #index index.html index.htm;
proxy_pass http://ime-server/ime-server;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
重啟nginx,./nginx -s reload 。然後檢查被代理後的連接埠資訊是否正確
以上就介紹了Nginx反向代理關於連接埠的問題,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。
陳述:本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn