多个应用程序的带前缀的nginx代理路径

多个应用程序的带前缀的nginx代理路径,nginx,Nginx,我在配置nginx proxy\u pass时遇到问题。有一种情况是这样的: 服务器1-xx.xx.xx.xx-代理服务器 带应用程序A的服务器2-yy.yy.yy 带应用程序B的服务器3-zz.zz.zz.zz 配置如下所示: server { listen 80; ## listen for ipv4; this line is default and implied location /app_a { rewrite /app_a/(.*)$ /

我在配置nginx proxy\u pass时遇到问题。有一种情况是这样的:

  • 服务器1-xx.xx.xx.xx-代理服务器
  • 带应用程序A的服务器2-yy.yy.yy
  • 带应用程序B的服务器3-zz.zz.zz.zz
配置如下所示:

server {
    listen   80; ## listen for ipv4; this line is default and implied


    location /app_a {
        rewrite /app_a/(.*)$ /$1 break;
        access_log off;
        proxy_pass http://yy.yy.yy.yy/;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header Client-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Upstream $remote_addr;


}

    location /app_b {
        rewrite /app_b/(.*)$ /$1 break;
        access_log off;
        proxy_pass http://zz.zz.zz.zz;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $http_host;
        proxy_set_header Client-IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header X-Upstream $remote_addr;
    }

}
然后,当我使用我的浏览器xx.xx.xx.xx/app_a或xx.xx.xx.xx/app_b时,没有加载静态文件(404),所有链接都没有应用程序前缀(xx.xx.xx.xx/login)

如何配置nginx,使链接显示为:

  • xx.xx.xx.xx/app_a/login
  • xx.xx.xx.xx/app_b/login

你应该在帖子中用短语表达一个问题。实际上,我认为这是一个应用程序问题,应用程序
app\u a
app\u b
应该设置其根路径为
http://example.com/app_a
http://example.com/app_b
,nginx不负责重写响应中的URL