如果nginx的監聽端口不是默認的80端口,改為其他非80端口后,后端服務tomcat中的request.getServerPort()方法無法獲得正確的端口號,仍然返回到80端口。在response.sendRedirect()時,客戶端可能無法獲得正確的重定向URL。
所以正確的配置:
1 server { 2 3 listen 8080; 4 5 server_name localhost; 6 7 location / { 8 9 proxy_pass http://192.168.1.100:8081; 10 11 proxy_set_header Host $host:8080; 12 13 proxy_set_header X-Real-IP $remote_addr; 14 15 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 16 17 } 18 19 }
這里主要注意 配置文件的第三行
3 listen 8080;
第9行是你服務的地址
還要注意第11行
11 proxy_set_header Host $host:8080;
這兩個地方要保持一致