请教一下反向代理跟负载均衡

2021-06-03 21:47:57 +08:00
 lonelygod365

我这的这几个理解是否准确?
负载均衡既可以单纯做负载均衡,也可以负载均衡➕反向代理。

nginx 做反向代理是否就是为了实现负载均衡呢?


假如我在防火墙后面已经有了物理负载均衡,那么后端的 web 服务器,应用服务器之间的负载均衡谁来实现呀?

951 次点击
所在节点    问与答
6 条回复
Tianao
2021-06-03 22:04:15 +08:00
负载均衡既可以单纯做负载均衡,也可以负载均衡➕反向代理。

反向代理是负载均衡的一种实现方式,但反向代理并不是只用于负载均衡,负载均衡也不是只有反向代理这一种实现方式,这俩名词没啥必然联系,是相交的关系,也就没啥单纯不单纯➕不➕的。


nginx 做反向代理是否就是为了实现负载均衡呢?

如上所说,不是。也可能是为了端口复用(实现虚拟主机的效果),也可能是为了平滑扩容 /温暖上线 /灰度测试 /AB 测试 /HA 高可用……


假如我在防火墙后面已经有了物理负载均衡,那么后端的 web 服务器,应用服务器之间的负载均衡谁来实现呀?

都可以,但从硬件负载均衡的部署模式 /架构看,内部再来一套负载均衡比较灵活,软硬无所谓。要不然现有硬件负载均衡可以考虑做混合部署,内部负载做旁路或者三角。
lonelygod365
2021-06-03 22:27:17 +08:00
@Tianao 理解了,那如果这套系统如果是在云上的话,拓扑图可以如下吗?

用户访问到云服务商提供的负载均衡(华为叫 ELB ),然后通过负载均衡轮询到后端 web 服务器,web 服务器负责静态内容吧我理解的, 然后再后面如果有动态的数据库请求就再通过一层负载均衡去找到应用程序服务器。


我是自己学习这些内容,没有参与过,所以拓扑只能结合网上教程自己脑补,如有错误,还请原谅。
Tianao
2021-06-03 22:32:32 +08:00
@lonelygod365 #2 没看到图,语言描述看是可以的。
lonelygod365
2021-06-03 22:40:30 +08:00
@Tianao web 服务器与应用服务器之间,一般也还有一层负载均衡吗?

因为我在网上看到的拓扑都是这样子的。https://i.loli.net/2021/06/03/5XNaJC1lLTIAkGS.jpg?width=1242&height=2688


就是给我的错觉是 web 服务器跟后端应用服务器是一对一的关系。
Tianao
2021-06-04 09:05:18 +08:00
@lonelygod365 #4 逻辑上是可以有一层的,但在物理拓扑上,这一层 LB 不一定是直路部署的硬件,也可能是单臂回出口位置的 LB (这就是我上文所说的“不灵活”等弊端),也可能是另外旁挂(流量单臂)的,还可能是旁路(流量三角)的。
Tianao
2021-06-04 09:06:32 +08:00
建议楼主看下主流负载均衡 /应用交付产品的文档,里面有典型的部署架构。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/781219

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX