负载均衡产品
-
硬件
- F5
- 深信服
-
软件
- nginx
- LVS
- Haproxy
-
LVS (linux virtual server)
- 内核
- 四层
-
工作模式
-
规定的数据包如何传输
-
响应数据包是否经过 负载均衡器
-
经过负载均衡器
-
nat
修改目标IP为RIP
必须的条件是,RS的网关为DIP -
full-nat
请求和响应都修改- 修改源IP 和目标IP
-
-
不经过(响应包都不经过负载均衡器)
-
DR 直接路由
- 修改的请求的数据包中目标MAC 为RS 的MAC
- 必须的条件是,集群在一个局域网内,所有集群成员都要设置VIP
- 只有负载均衡器响应VIP的ARP 广播
-
IP-tunnel
- 在原有的数据请求数据包上报过一层新的IP头部,之后重新路由
-
-
-
集群的成员是否必须在一个局域网中
-
不用再局域网之内的
- full-nat
- ip-tunnel
-
在局域网之内的
- DR
- NAT
-
高可用软件
keepalived
- vrrp
- 心态信息
组播:224.0.0.18 - 管理 vip 进行资源切换
本身可以配置负载均衡器
依赖是LVS
- lvs 继承于内核的模块
- 之前管理(配置)lvs的软件是ipvsadm
- 现在可以是 keepalived
keepalived + lvs 4层负载均衡
keepalived + nginx
keepalived + mysql
总体目标是实现高可用,避免出现单独故障
配置keepalived + lvs步骤:
1.修改负载均衡器的 keepalived.conf 配置文件
-
- router_id
- 角色 MASTER / BACKER
- 优先级
- 发送心跳的接口(网络设备名称)
- vip
---------------------------------------------
lvs --> real server
算法:rr
工作模式:DR
如何对 real server 进行健康检查
检查的方法:
- TCP_CHECK 基于4层
- HTTP_GET http 80
- SSL_GET https 443
2.所有的Real server 需要配置回环接口的 lo VIP地址
echo 1 #不响应非自己的 arp 广播
echo 2 # 使用最有IP 进行响应
配置keepalived + nginx步骤:
1.修改负载均衡器的 keepalived.conf 配置文件
- router_id
- 角色 MASTER / BACKER
- 优先级
- 发送心跳的接口(网络设备名称)
- vip
---------------------------------------------
lvs --> real server
算法:rr
工作模式:DR
如何对 real server 进行健康检查
检查的方法:
- TCP_CHECK 基于4层
- HTTP_GET http 80
- SSL_GET https 443
2.在负载均衡器上配置 Nginx
http{
upstream html {
server 192.66.66.101:80;
server 192.66.66.102:80;
}
upstream php {
server 192.66.66.103:80;
server 192.66.66.104:80;
}
server{
location / {
proxy_pass http://html;
}
location ~\.php {
proxy_pass http://php;
}
}
}
3.Real server的配置
实现普通的web服务即可
高可用负载均衡器架构总结
四层负载均衡的高可用方案:
-
keepalived + lvs + 任意的服务 (web/mysql/dns/ftp/email)
-
keepalived + nginx + 任意的服务 (web/mysql/dns/ftp/email)
-
keepalived + haproxy + web 任意的服务 (web/mysql/dns/ftp/email)
七层的负载方案: -
keepalived + nginx + web服务(nginx httpd/tomcat)
-
keepalived + haproxy + web服务(nginx httpd/tomcat)
-
keepalived + httpd + web服务(nginx httpd/tomcat)