1. 概述与目标
1. 目标:在香港地区的8核VPS(推荐32GB内存、500GB NVMe)上构建面向公网的高可用集群。
2. 适用场景:Web前端、API网关、微服务入口或中小型SaaS服务。
3. 核心要点:负载均衡、漂移IP/虚拟IP(VIP)、健康检查、自动故障切换与状态同步。
4. 技术栈建议:使用 Keepalived + HAProxy / Nginx 做四层/七层负载均衡,后端使用多节点应用或Kubernetes。
5. 性能目标:单节点峰值吞吐可达数千TPS,集群可水平扩展并保证99.95%可用性(取决于上游带宽与防护策略)。
2. 预备条件与资源清单
1. VPS规格:8 vCPU, 32GB RAM, 500GB NVMe, 5Gbps带宽(或按需)。
2. 操作系统:Ubuntu 22.04 LTS 或 CentOS 8 Stream;需开启内核参数 net.ipv4.ip_forward 等。
3. 网络资源:域名、A/AAAA记录、多可用区弹性IP或BGP Anycast服务优先。
4. 运维工具:SSH 密钥、Ansible/脚本、监控(Prometheus+Grafana)、日志(ELK/EFK)。
5. 安全与合规:防火墙策略、VPN 管理入口、备份与快照策略(每日增量+每周全量)。
3. 架构设计要点
1. 前端:使用CDN做静态加速并作为第一道DDoS缓解(如Cloudflare、阿里云CDN)。
2. 边缘:2台或以上的香港VPS作为负载均衡层,采用Keepalived实现虚拟IP漂移。
3. 负载均衡:HAProxy/Nginx 反向代理做七层路由,或LVS做四层直通,高并发下优先LVS+NAT。
4. 后端:至少3个应用实例或容器节点做服务发现与健康检查,支持会话粘性或共享会话存储。
5. 监控与告警:实时流量阈值、主从切换报警、页面响应时间与错误率监控。
4. 具体部署步骤(按序)
1. 第一步:初始化系统,更新内核补丁,设置时区和时钟同步(ntp/chrony)。
2. 第二步:安装并配置Keepalived,设置VIP与优先级,编写vrrp_script做健康检查脚本。
3. 第三步:部署HAProxy/Nginx,配置后端池、健康检查、超时和连接数限制。
4. 第四步:部署应用节点,配置服务发现(Consul/etcd/k8s API),并进行主动健康上报。
5. 第五步:设置监控采集、日志聚合与告警,进行全链路压测(ab/hey/jmeter),调优连接池与超时。
5. 测试、容灾与高可用验证
1. 故障注入:模拟主节点断电或网卡断连,验证VIP漂移时间(目标<5s)。
2. 压力测试:使用并发客户端施压,记录瞬时TPS、95/99分位响应时间。
3. 冗余验证:断开后端一台或两台节点,确保负载均衡能够自动剔除并均匀分配流量。
4. 回滚流程:演练配置回滚与灾难恢复(恢复快照、替换IP、更新DNS TTL)。
5. 指标基准:用Prometheus记录CPU、内存、连接数、网络带宽与错误率,设定阈值告警。
6. 真实案例与服务器配置示例
1. 案例背景:某SaaS公司在香港部署外网入口,目标降低跨境延迟并防护大陆突发流量。
2. 采用架构:2台香港VPS(Keepalived+HAProxy)+3台后端应用节点(Docker Swarm)。
3. 典型配置示例表(VPS规格与网络):
| 节点 | CPU | 内存 | 存储 | 带宽 |
| LB-1(主) | 8 vCPU | 32 GB | 500 GB NVMe | 5 Gbps |
| LB-2(备) | 8 vCPU | 32 GB | 500 GB NVMe | 5 Gbps |
| App-1/2/3 | 4 vCPU | 16 GB | 200 GB NVMe | 2 Gbps |
4. 配置示例要点:Keepalived priority 主节点100、备节点90,健康脚本检测本地80端口HTTP。
5. 成果:经过优化后,静态页面P95响应<100ms,系统在4分钟内完成带宽抖动恢复且无明显流量丢失。
7. 域名、CDN 与 DDoS 防护建议
1. 域名解析:将域名指向CDN加速域名,CDN回源使用VIP或多弹性IP组。
2. CDN策略:开启缓存规则、WAF规则与IP黑白名单,缓存命中率尽量提高到80%以上。
3. DDoS防护:结合云厂商Anti-DDoS基础防护与第三方清洗(按峰值流量计费),设置阈值告警与速率限制。
4. 网络层防护:启用BGP Anycast或多出口带宽,避免单点带宽瓶颈;对UDP协议做流量限制。
5. 运维流程:制定应急响应手册(联系人、切换步骤、证据保留),并定期演练与回顾。
来源:部署指南在香港vps云服务器8核上搭建高可用集群的步骤