负载均衡

LB:Load Balance

硬件负载均衡

例如:F5

四层(传输层)负载均衡

基于IP 和 端口 进行转发
例如:LVS(Linux Virtual Server)、HAProxy(High Available Proxy)

1、LVS
角色
VS:Virtual Server,转发器
DR:Director,就是VS
RS:Real Server

三种工作模式
一、NAT模式(VS-NAT):Director相当于一个NAT路由器,转换IP和端口
缺点:Director成为瓶颈
二、IP隧道模式(VS-TUN):每个RS都有一个公网IP,Director转发请求给RS,RS直接响应给客户端
缺点:使用太多公网IP
三、直接路由模式(VS-DR):Director和RS在同一个局域网内,每个RS和Director使用同一个公网IP,Director根据MAC地址把请求转发给RS,RS直接响应给客户端

2、阿里云SLB
第四层负载均衡(采用 LVS + keepalived),第七层负载均衡(采用 Tengine)

七层(应用层)负载均衡

基于URL等应用层信息进行转发
例如:Nginx、HAProxy

1、Nginx
可以作为web服务器
一个端口可以被多个域名绑定,并根据域名转发
可以区分路径,可以配置成静态文件访问本地,接口请求转发给后端
可以用Nginx根据域名来区分开发环境、测试环境、生产环境

2、阿里云SLB
一个端口只能绑定一个域名,根据端口转发,且不能区分路径
可以用SLB根据域名来区分开发环境、测试环境、生产环境

SLB与Nginx的最佳实践

负载均衡_第1张图片
入口SLB.png

1、入口SLB根据域名区分调试环境、生产环境
2、Nginx部署前端静态文件,根据路径 区分静态文件请求 和 接口请求
3、调试环境Nginx上同时部署前端的开发包、测试包、预发包,根据域名区分访问
4、预发时,从正式环境SLB上摘掉“预发环境和正式环境两用API”,修改数据库(能兼容正式版代码)
5、正式发布时,正式环境SLB挂上“预发环境和正式环境两用API”

阿里云

负载均衡 SLB

你可能感兴趣的:(负载均衡)