Nginx反向代理 – 请求仍然返回端口80

我试图使用nginx作为两个weblogic服务器的代理服务器。 weblogic上的端口是23823和23824,我希望它们都可以从端口8888访问,并通过上下文path进行区分。 我试过这个configuration:

listen 8888; server_name vead03; location /app1 { proxy_pass http://127.0.0.1:23823; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location /app2 { proxy_pass http://127.0.0.1:23824; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } 

我可以通过端口8888访问这两个服务器没有问题,但是当一个请求登陆服务器,我打电话给request.getServerPort() ,我收到80由于某种原因。 我不知道这个消息从哪里来。 80端口不在nginxconfiguration中,我绝对没有在Weblogic的任何地方使用它。 这是一个相当大的问题,因为应用程序预计会收到8888 ,而不是80。

解决scheme很简单:而不是

 proxy_set_header Host $host; 

我不得不使用

 proxy_set_header Host $host:$server_port;