centos触发器如何实现负载均衡
导读:概念澄清与总体思路 在 CentOS 环境中,负载均衡通常由 Nginx、HAProxy、LVS/IPVS、Keepalived 等组件实现;日常所说的“触发器”多指对这些组件的“事件触发”或“健康检查触发”机制,例如后端节点宕机时自动摘除...
概念澄清与总体思路 在 CentOS 环境中,负载均衡通常由 Nginx、HAProxy、LVS/IPVS、Keepalived 等组件实现;日常所说的“触发器”多指对这些组件的“事件触发”或“健康检查触发”机制,例如后端节点宕机时自动摘除、恢复后自动加回。实际做法是用负载均衡器自带的健康检查与 Keepalived 的 VRRP 联动 VIP 漂移,实现故障切换与自动恢复。
方案一 通用事件触发思路
- 健康检查触发摘除/恢复:在 Nginx 中使用 upstream 的 max_fails/fail_timeout 与被动健康检查;在 HAProxy 中配置 server 行带 check 参数与 httpchk/option httpchk,异常节点会被自动标记为 down 并不再接收流量。
- 高可用触发 VIP 漂移:用 Keepalived 管理 VRRP,主机故障或健康检查失败时降低 priority,备机提升为主并接管 VIP,对外或对内保持统一接入地址。
- 内核层触发转发:使用 LVS/IPVS 做四层转发,结合 Keepalived 的健康检查脚本对后端做应用层探活,失败则从 LVS 表中移除,恢复后加回。
方案二 快速上手示例 Nginx 事件触发摘除
- 安装与启用
- 安装:sudo yum install -y epel-release & & sudo yum install -y nginx
- 启动:sudo systemctl start nginx & & sudo systemctl enable nginx
- 关键配置示例(/etc/nginx/nginx.conf 或 /etc/nginx/conf.d/lb.conf)
- 在 http 段定义 upstream,使用 max_fails/fail_timeout 与 down 标识做事件触发摘除;也可配合 nginx_upstream_check_module 做主动探活(需额外模块)。
- 示例要点:
- upstream backend { server 192.168.1.101:80 max_fails=3 fail_timeout=30s; server 192.168.1.102:80 max_fails=3 fail_timeout=30s; }
- server { listen 80; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
- 验证
- 访问后端或查看 /var/log/nginx/error.log 与 upstream 状态;停掉某后端后,Nginx 会在 fail_timeout 内将异常节点标记为不可用并不再转发。
方案三 快速上手示例 HAProxy 事件触发摘除
- 安装与启用
- 安装:sudo yum install -y haproxy
- 启动:sudo systemctl start haproxy & & sudo systemctl enable haproxy
- 关键配置示例(/etc/haproxy/haproxy.cfg)
- 在 backend 中使用 balance 与 server 的 check 参数;通过 option httpchk 定义 HTTP 探活路径,失败即触发摘除。
- 示例要点:
- frontend http-in bind *:80
- default_backend servers
- backend servers
- balance roundrobin
- server s1 192.168.1.101:80 check inter 2000 rise 2 fall 3
- server s2 192.168.1.102:80 check inter 2000 rise 2 fall 3
- 验证
- 访问 http://< LB_IP> /;停掉某后端后,HAProxy 会在设定的 fall 次数内将其标记为 down 并自动恢复。
方案四 高可用与内核层触发 LVS Keepalived
- 安装与启用
- 安装:sudo yum install -y ipvsadm keepalived
- 关键配置示例(/etc/keepalived/keepalived.conf,主备两台)
- 使用 VRRP 管理 VIP,并定义 virtual_server 与 real_server 的健康检查;健康检查失败触发摘除,主机恢复后重新接管。
- 示例要点:
- vrrp_instance VI_1 { state MASTER/BACKUP; interface eth0; virtual_router_id 51; priority 100/90; advert_int 1; authentication { auth_type PASS; auth_pass 1234 } virtual_ipaddress { 192.168.1.100 } }
- virtual_server 192.168.1.100 80 { delay_loop 6; lb_algo rr; lb_kind DR; protocol TCP; real_server 192.168.1.101 80 { weight 1; TCP_CHECK { connect_timeout 10 connect_port 80 } } real_server 192.168.1.102 80 { weight 1; TCP_CHECK { connect_timeout 10 connect_port 80 } } }
- 验证
- ip addr 应看到 VIP 在主节点;停掉主节点后,备节点自动接管 VIP 并继续转发。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos触发器如何实现负载均衡
本文地址: https://pptw.com/jishu/787738.html
