高可用 可扩展 多层反向代理架构演进

1、DNS轮询技术

2、nginx

3、lvs(操作系统层面反向代理)

4、F5(硬件层面反向代理)

5、vip+keepalived技术-实现保活,高可用

一、使用dns,架构如下

dns将一个域名解析到多个ip上,要求ip都是公网ip

这样做存在众多的问题:1、服务器直接对外暴露

2、需要较多的公网ip

3、不能保证高可用,因为dns不能检测服务器的存活情况,即使有服务器挂了流量依然会打进来

4、增加一台服务器就需要配置一次dns,但是dns生效是需要一段时间的。

二、使用dns+nginx+keepalived

增加一层反向代理,dns解析域名到对应的nginx服务器上,

两台nginx服务器只会有一台服务器在使用,当一台nginx服务器挂了后,keepalived会将服务切到另一台上,保证nginx服务的高可用

nginx可以感知服务的存活情况,若服务器挂了,会将流量切到存活的服务器上,保证服务的高可用

但是nginx的并发量也是有限的,解决办法,增加dns服务组、DNS轮询到多个nginx服务组

三、由于nginx性能有限,所以流量较大的网站会使用lvs代替nginx,nginx下沉到下一层

各种方案可以灵活组合使用,加入代理后增加了可用性和扩展性,但是接入了代理层,响应的时延也对应增加了。

原文地址:https://www.cnblogs.com/zhaolei1996/p/13417162.html