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

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

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

    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 不在 nginx 配置中,而且我绝对没有在 Weblogic 的任何地方使用过它。这是一个很大的问题,因为应用程序希望接收8888,而不是 80。

答案1

解决方案很简单:

proxy_set_header Host $host;

我不得不用

proxy_set_header Host $host:$server_port;

相关内容