先明确业务需求:并发连接数、峰值带宽、是否需要状态保持(session)、SSL终端、是否接入CDN。准备好供应商账号(台湾高防服务器提供商)、两台或多台高防节点预算和目标IP段。
准备2台以上台湾高防物理/独立服务器,建议跨机房或跨机架。确认提供商支持浮动IP或支持BGP高防(可以做黑洞/清洗)。准备管理端SSH、域名DNS控制权、SSL证书(或使用Let's Encrypt)。
常见模式:公网 -> 高防网关(提供商) -> 两台NAT或直连的负载均衡节点(HAProxy) -> 后端应用服务器(可以私网)。如需更高可用,可在两台LB上做VRRP(keepalived)实现虚拟IP。
DNS轮询:简单但切换慢。L4(keepalived+LVS/HAProxy):高性能、适合TCP/UDP。L7(HAProxy/Nginx):支持内容路由、SSL卸载。对DDoS场景推荐高防在前,LB做会话与健康检查。
在供应商控制台购买台湾高防服务器:选择带宽与防护等级,开通公网IP,记录管理IP与清洗IP。设置控制台中黑白名单、清洗阈值以及BGP路由策略(如有)。
在两台LB节点上执行:更新系统、设置时区、创建管理用户、配置SSH密钥登录。禁止root密码登录,修改SSH端口(可选),安装iptables或nftables并开启必要端口(80/443/TCP后端端口)。
安装:Ubuntu示例 sudo apt update && sudo apt install -y haproxy keepalived。keepalived.conf示例:vrrp_instance VI_1 { state MASTER; interface eth0; virtual_router_id 51; priority 101; authentication { auth_type PASS; auth_pass mypass } virtual_ipaddress { 10.0.0.100 } }
HAProxy简要配置示例(/etc/haproxy/haproxy.cfg):frontend http-in bind 10.0.0.100:80 mode http default_backend webservers backend webservers mode http balance roundrobin server web1 10.0.1.11:80 check server web2 10.0.1.12:80 check
使用Certbot获取证书:sudo apt install certbot; sudo certbot certonly --standalone -d example.com。将证书路径指向HAProxy:bind 10.0.0.100:443 ssl crt /etc/letsencrypt/live/example.com/fullchain.pem key /etc/letsencrypt/live/example.com/privkey.pem。
HAProxy使用 check 参数并设置timeout:server web1 10.0.1.11:80 check inter 2000 rise 2 fall 3。启用粘性cookie:backend webservers balance roundrobin cookie SRV insert indirect nocache。
在LB层做基础限流:iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 200 -j DROP;同时启用syn防护:sysctl -w net.ipv4.tcp_syncookies=1。配合供应商的高防控制台设置流量清洗阈值。
使用rsync或Ansible保持HA配置一致:rsync -avz /etc/haproxy/ root@backup:/etc/haproxy/;或用Ansible playbook推送配置并在更改后重启服务(systemctl reload haproxy)。确保keepalived优先级在主备正确设置。
部署Prometheus + node_exporter或直接使用Zabbix监控节点CPU、连接数、HAProxy stats。制定演练流程:切换主节点(systemctl stop keepalived),验证虚拟IP漂移和业务是否正常;记录RTO与RPO。
问:台湾高防服务器在DDoS攻击发生时,如何保证后端LB不被击穿?
答:首先将流量先通过提供商清洗(控制台开启清洗或设置阈值),再由高防出口只放行清洗后的流量到LB;LB侧限制连接速率、开启syn cookie与iptables限流,并配置短超时的健康检查以快速隔离异常后端。
问:如何在keepalived主备切换时避免会话中断?
答:使用会话保持(HAProxy的cookie或源地址hash),并在主备切换时确保后端会话能在另一节点继续处理。若必须完全无中断,可将会话状态存储在共享Redis或使用NAT模式使后端直接响应,减少LB状态依赖。
问:部署完成后如何验证高可用与高防配置生效?
答:执行三项验证:1)故障切换测试:停掉主节点的keepalived并观察虚拟IP漂移与业务可用性;2)流量清洗测试:与供应商沟通模拟小流量攻击或使用压测,观察清洗日志与控制台告警;3)性能测试:压测并监控连接数、延迟、后端健康,调整sysctl与HAProxy参数。