一、DNS轮询
1.实现
DNS配置多个IP域名解析(A记录)
2.优点
部署简单
3.缺点
非高可用(健康监测需人工干预)
会话状态需要共享(session共享)
扩容非实时(DNS解析缓存和TTL)
暴漏较多的外网IP
备注:DNS轮询是从域名层面做负载均衡
二、负载均衡
Load Balancing LB负责客户端流量到后端服务集群的分发,一般LB也会负责后端所有server的健康监测
1.实现
使用Nginx在站点和浏览器之间加入了反向代理
参考:https://cloud.tencent.com/developer/article/1112659
2.优点
扩容实时(可以在反向代理随时扩容)
自动负载均衡(自动检测站点健康状态)
暴漏较少的外网IP(只需要暴漏反向代理Nginx的IP即可)
3.缺点
反向代理是单点(无法解决超出Nginx吞吐量)
三、高可用keepalived
多台反向代理部署keepalived,设置相同的Virtual IP,保证反向代理的高可用
1.实现
多台反向代理部署keepalived,设置相同的Virtual IP
2.优点
高可用(反向代理是多机)
3.缺点
资源利用率低
反向代理仍然是单点接入
四、LVS/F5
LVS主要用于服务器集群的负载均衡。它工作在网络层,可以实现高性能,高可用的服务器集群技术
LVS的转发主要通过修改IP地址(NAT模式,分为源地址修改SNAT和目标地址修改DNAT)、修改目标MAC(DR模式)来实现。
1.实现
LVS是在操作系统层面(F5是硬件)
2.优点
可以扩展多个反向代理Nginx
可结合keepalived实现高可用
总结
1、通过DNS轮询扩展入口
2、通过keepalived实现高可用
3、通过LVS扩展多个Nginx反向代理
4、通过Nginx实现多个站点服务器负载均衡