使用 nginx 重写 cname 主机映射 url 路径

使用 nginx 重写 cname 主机映射 url 路径

目前有一个应用程序正在与第三方应用程序一起使用 cname 主机映射

第三方应用程序的主机名是mycompany.partner.com 以及我的域下的当前 cname 主机映射help.mycompany.com

因此当前路线如下

users => cloudflare DNS(help.mycompany.com) => cname host mapping(mycompany.partner.com) => partner app

现在我想这样做

                                                             => cname host mapping(mycompany.partner.com) => partner app
                                                            |
users => cloudflare DNS(help.mycompany.com) => my nginx =>  |
                                                            |
                                                             => my frontend app

这可能吗?

所以基本上我希望所有流量现在都通过 nginx 进入我自己的应用程序,然后我根据 url 路径将一些流量路由到第三方应用程序,将其他流量路由到我的前端应用程序

我该如何使用 nginx 实现这一点?以下是我想要路由的 URL 路径

这会路由到我的前端应用程序

help.mycompany.com/app/test1                  => http://localhost:500/app/test1  
help.mycompany.com/app/test2/test3            => http://localhost:500/app/test2/test3
help.mycompany.com/app/parameter?key=check    => http://localhost:500/app/parameter?key=check

这将重写/路由至合作伙伴应用程序

help.mycompany.com/app/partner1               => https://mycompany.partner.com/app/partner1 
help.mycompany.com/app/discuss/check          => https://mycompany.partner.com/app/discuss/check

and all other paths 

将所有 URL 路径路由到前端应用程序的位置块如下

location ^~ / {

    rewrite ^/(.*)$ /$1 break;
    proxy_pass http://localhost:500;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host;
    proxy_redirect off;
}

但现在我需要将一些 URL 路径拆分为合作伙伴应用程序,如上所述

因此基本上所有流量都将通过 nginx,因为我将把 help.mycompany.com 的 DNS 指向我的 nginx 反向代理,然后路由并重写 url

谢谢

相关内容