正常狀況下配置真實客戶端IP以下:服務器
#設置主機頭和客戶端真實地址,以便服務器獲取客戶端真實IP proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
如上,Host配置只有host,沒有對應的port,這就致使在被代理的地方代碼中獲取得錯誤的端口(request.getRequestURL())(非80端口)spa
解決方案:代理
將Host後面的改成 $host:$server_port便可,配置文件以下:code
#設置主機頭和客戶端真實地址,以便服務器獲取客戶端真實IP proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;