1.
整体架构规划与原则
规划要点:明确入口(CN2高防节点)与出口(香港VPS)、是否使用Anycast或DNS轮询;选用L4(TCP/UDP)优先保证性能,L7用于应用层清洗。
冗余原则:至少两台高防节点 + 两台香港VPS,跨机房分布,负载均衡+故障切换。
2.
准备工作与环境要求
确认内核参数可调、安装包管理权限;准备公网弹性IP或BGP;安装工具:haproxy/nginx/keepalived、ipset、conntrack、tcpdump、hping3(仅用于受控压测)。
端口与服务清单:列出业务端口(80/443/TCP业务端口/UDP),并在防火墙开放健康检查端口。
3.
配置L4负载均衡(HAProxy TCP模式)
安装:apt-get update && apt-get install -y haproxy。示例haproxy.cfg(TCP)片段:
global...defaults...frontend ft_tcp bind *:443 mode tcp option tcplog default_backend bk_tcp backend bk_tcp mode tcp balance roundrobin server hk1 10.0.0.2:443 check server hk2 10.0.0.3:443 check
要点:开启tcp-check健康检查,调短inter与fall参数,使用balance leastconn或roundrobin。
4.
配置L7负载均衡(Nginx stream 或 http)
当需基于路径/Host做流量筛选时使用Nginx。示例stream:
stream { upstream backend { server 10.0.0.2:80; server 10.0.0.3:80; } server { listen 80; proxy_pass backend; } }
并在http模块配置防爬、速率限制(limit_req_zone/limit_conn_zone)。
5.
高可用与故障切换(Keepalived + VRRP)
安装:apt-get install keepalived。示例配置要点:设置虚拟IP(VIP),优先级(priority),并在notify脚本中自动修改haproxy后端权重。
保持健康检查脚本:检测haproxy/nginx进程与端口,失败时将优先级降为0触发主备切换。
6.
内核与防护调优实操命令
开启SYN cookies:sysctl -w net.ipv4.tcp_syncookies=1;调大nf_conntrack:echo 262144 > /proc/sys/net/netfilter/nf_conntrack_max;提升listen队列:sysctl -w net.core.somaxconn=65535 sysctl -w net.ipv4.tcp_max_syn_backlog=4096。
连接限制iptables示例:iptables -N LIMIT_TCP; iptables -A INPUT -p tcp --syn -m connlimit --connlimit-above 300 -j REJECT
7.
流量识别与清洗策略
使用ipset黑名单快速拦截恶意源:ipset create bad ips hash:net; ipset add bad 1.2.3.0/24; iptables -I INPUT -m set --match-set bad src -j DROP。
结合上游高防:当流量超阈值,自动触发BGP/上游清洗(与供应商API对接),或在负载均衡层转发到清洗池。
8.
测试与监控:如何做压测与演练
压测须在受控环境:使用ab/siege或h2load对HTTP,hping3模拟SYN洪水(仅在自有测试环境)。
监控项:连接数、TPS、丢包率、CPU/内存、netstat -anp、tcpdump抓包,设置Prometheus+Grafana报警并把阈值与自动化脚本关联。
9.
运维自动化与回退策略
实现自动化:用Ansible部署haproxy/nginx/keepalived配置、同步证书。
回退:在出现误杀或业务中断时,快速通过DNS切换低TTL回退到备用机房或直接BGP撤路由,保持通信链路通道。
10.
常见问题一:如何在流量突增时保持CN2节点稳定?
答:先通过内核调优(SYN cookies、conntrack、somaxconn)提升并发承载,再在节点前端加L4负载均衡分散连接;监测到超过阈值时,触发上游高防或将部分流量按策略导向香港VPS或清洗池,必要时使用ipset快速DROP恶意源。
11.
常见问题二:香港VPS作为后端如何避免单点被拖垮?
答:使用多机房多节点做后端集群,开启keepalived做VIP切换,后端内部做会话粘性或共享会话(Redis/Memcached);并在L4层配置最少连接优先,结合限流、防火墙策略保护后端。
12.
常见问题三:如何验证整体方案有效性?
答:分阶段压测(功能->并发->攻击模拟),在每阶段监控关键指标(响应时间、连接失效率、CPU/网络利用),并做故障演练(关掉主节点、模拟链路丢失),确认自动切换与报警流程无误。
来源:结合负载均衡优化cn2高防vps 香港vps的抗压能力方案