关于nginx:nginx-实现域名代理

业务场景
有两个零碎A、B,A、B两零碎均有独立域名,但对外只想裸露A域名。
须要实现通过 A域名+B零碎子路由 拜访 零碎B的子页面,图示如下。

浏览器拜访一个页面,须要1、动态资源文件,须要2、发送申请获取服务端数据,那么如果须要实现在A域名下拜访B页面,A零碎至多须要别离实现1、2两局部的申请转发。
即:
1、将申请B零碎动态资源文件的申请,转发到B零碎前端
2、将申请B零碎后端服务数据(api)转发到B零碎后端。

对系统A (www.asystem.com),零碎B(www.bsystem.com),想要实现达到B零碎的申请经由A零碎转发到B,首先B零碎的申请要能被A零碎所辨认。

如果有两个雷同子路由www.asystem.com/admin www.bsystem.com/admin 对应A、B两零碎的页面,那A代理B必定做不到。

所以要在子路由层面对A、B两零碎做个辨别,域名之后,子路由最前部,加个前缀(须要别离对A、B两零碎前端进行革新)。
如:
www.asystem.com/a/admin
www.bsystem.com/b/admin

同理,对A、B两零碎的申请,也要有所辨别,咱们别离增加前缀api/a、api/b (也是革新A、B两零碎前端;如果前端同学nginx用的好,前端nginx写rewrite配置,后端能够不改,但这事儿即便前端能够做,也不应该麻烦前端做,否则前端nginx配置会写的很冗余,可读性差,不容易保护。api的革新工作后端要配合,即后端别离改为api/a前缀、api/b前缀,改个对立前缀对后端来说不麻烦)。

革新工作实现后,下一步,通过配置A的nginx来实现
1、拜访www.asystem.com/b/ 等价于拜访www.bsystem.com/b/
2、/api/b结尾的申请转发到B零碎的服务端

外围的nginx配置如下图

做到下面这两点,百里之行已过六成,剩下的是解决:
1、认真解决登录问题;
2、实现A->B零碎的第一次跳转;
3、想好未鉴权间接拜访B零碎,B零碎的行为,实现它。

下面列出的123也须要前后端配合,要干的工作须要急躁,调试起来挺麻烦的,缓缓尝试吧同学们。

完结。

同步更新到本人的语雀
https://www.yuque.com/diracke…

【腾讯云】轻量 2核2G4M,首年65元

阿里云限时活动-云数据库 RDS MySQL  1核2G配置 1.88/月 速抢

本文由乐趣区整理发布,转载请注明出处,谢谢。

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据