1.
前提与网络拓扑规划
目标:在3香港提供的高防清洗节点与自建负载均衡器配合下,保证可用性与防护能力。
步骤:确认公网流量是否先过厂商清洗(建议是),决定清洗层在前还是LB在前;准备至少两台LB(N+1)和多台后端Web/应用服务器;规划私网/管理网段用于后端通信与健康检测。
2.
选择负载均衡方案(HAProxy/LVS/云LB)
建议:中小规模用HAProxy(四层+七层灵活),高并发用LVS/IPVS(性能好),如果在3香港已有云LB则考虑直接使用厂商LB并结合高防服务。
实操:若自建,选择Linux 7/8,安装haproxy或ipvsadm,并保留管理口与防火墙策略。
3.
HAProxy基础配置示例
样例文件(/etc/haproxy/haproxy.cfg)要点:frontend绑定公网VIP、backend定义后端池、健康检查、超时。
示例(简化):
global...default_backend webpool/frontend http-in bind *:80 mode http option httplog timeout client 30s backend webpool mode http balance roundrobin option httpchk GET /health server web1 10.0.0.11:80 check server web2 10.0.0.12:80 check
4.
高可用(Keepalived)与VIP漂移配置
用keepalived做VRRP,保证LB故障时VIP漂移到备LB。配置关键:state、interface、virtual_router_id、authentication、virtual_ipaddress。
示例要点:priority主比备高;notify脚本可在漂移时启/停防火墙或更新BGP邻居。
5.
健康检查与会话保持(Sticky)
健康检查:启用HTTP/HTTPS一级健康页(/health),后端返回200即可。使用haproxy的option httpchk与interval、rise/fall参数。
会话保持:若应用需粘性会话,可用cookie或源IP散列(balance source)。示例:backend ... cookie SERVERID insert indirect nocache server web1 10.0.0.11:80 cookie s1 check
6.
与3香港高防服务结合的架构与配置要点
常见模式A:流量先过高防清洗,再到LB——优点:清洗层过滤大流量;LB负责流量分发与应用防护。
常见模式B:清洗与LB合并(厂商提供的云LB+高防)——优点:运维简单。实操要点:确保清洗节点透传客户端真实IP(X-Forwarded-For或PROXY protocol),并在LB上开启相应解析。
7.
SSL 卸载与证书管理
在LB上做SSL终止可减轻后端负担,步骤:在HAProxy上配置bind *:443 ssl crt /etc/haproxy/certs/site.pem,注意权限。
若需要端到端加密,可使用内部自签或Let's Encrypt在后端配置TLS,并在LB与后端之间使用HTTPS。
8.
防护策略:速率限制、ACL与WAF接入
在HAProxy可用stick-table做速率限制(每IP并发/每秒请求数),示例:stick-table type ip size 1m expire 10s store gpc0,http_req_rate。
推荐结合WAF(ModSecurity/Nginx+WAF或云WAF),并在LB前或后部署规则集屏蔽常见Web漏洞攻击。
9.
日志、监控与告警配置
日志:启用HAProxy的HTTP日志并集中到syslog(rsyslog->ELK/EFK)。监控:使用Prometheus的haproxy-exporter或keepalived-exporter;设定后端失联、错误率上升与延迟阈值告警。
测试:用curl与ab/hey做压力与健康检查模拟,记录响应与错误率。
10.
故障演练与压力测试步骤
演练流程:1) 在低峰先演练VIP漂移(停主LB服务);2) 模拟后端宕机,观察健康检查与流量切换;3) 做逐步负载上升测试(ab/hey),监控清洗层是否触发大流量策略。
DDoS测试请与3香港沟通取得授权,避免触法或影响他人。
11.
常用命令与配置片段
ipvsadm查看LVS:ipvsadm -Ln --stats;iptables白名单示例:iptables -I INPUT -p tcp --dport 22 -s 管理IP -j ACCEPT;haproxy reload:systemctl reload haproxy。
验证真实IP:curl -I --header "X-Forwarded-For: 1.2.3.4" http://VIP/health 并查看后端日志。
12.
问:如何确认3香港高防清洗不会破坏客户端真实IP?
答:与3香港确认其清洗策略是否保留X-Forwarded-For或支持PROXY protocol;在清洗->LB路径上检查HTTP头或TCP PROXY头;在后端日志与haproxy日志中比对源IP与X-Forwarded-For字段,必要时请求厂商开启透传或发送真实IP的头部。
13.
问:在流量突增时,我应先扩展LB还是后端服务器?
答:优先确认瓶颈(CPU/网络/连接数)。若LB CPU或连接表到达上限,先水平扩展LB并使用keepalived做HA;若LB空闲而后端CPU/IO瓶颈,则扩展后端或启用缓存(CDN/缓存层)。同时开启速率限制保护应用。
14.
问:如何在不中断业务的情况下升级负载均衡配置?
答:采用滚动升级:先在备LB上修改并验证配置(haproxy -c -f /etc/haproxy/haproxy.cfg),在备机上加载新配置并将VIP漂移至备机,监测无异常后在原主机应用新配置并切换回;若使用云LB,使用厂商提供的灰度或回滚功能。
来源:利用负载均衡优化3香港高防服务器的流量分发与安全防护