小编ola*_*ert的帖子

具有不同上下文路径的 Nginx 反向代理

我正在尝试使用 nginx 反向代理同一主机/端口上的多个 Web 应用程序,使用不同的路径来区分应用程序。

我的 nginx 配置如下所示:

proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $proxy_connection;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $proxy_x_forwarded_proto;
proxy_set_header X-Forwarded-Ssl $proxy_x_forwarded_ssl;
proxy_set_header X-Forwarded-Port $proxy_x_forwarded_port;

upstream app1 {
    server 192.168.0.1:8080;
}
upstream app2 {
    server 192.168.0.2:8080;
}

server {
    server_name my-application-server;
    listen 80;

    location /app1/ {
        proxy_pass http://app1/;
    }
    location /app2/ {
        proxy_pass http://app2/;
    }

}
Run Code Online (Sandbox Code Playgroud)

这正确地代理了对我的应用程序上单个页面的任何请求 - 例如http://my-application-server/app1/context/login,但我的应用程序中的任何超链接都已损坏,因为它们缺少app1路径的一部分 - 例如,它们将我定向到http://my-application-server/context/login-success而不是http://my-application-server/app1/context/login-success.

我已尝试为proxy_redirectand添加各种值rewrite …

proxy tomcat nginx

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

nginx ×1

proxy ×1

tomcat ×1