1.
项目概览与选型理由
- 背景:需要在韩国部署面向亚太用户的微服务集群以降低延迟。
- 选型:选择strry韩国VPS作为基础主机,原因是网络出口优良、支持抗DDoS和灵活规格。
- 目标:搭建基础平台,包含Nginx负载均衡、三个微服务(auth/api/web)、日志与监控。
- 要求:单节点能承载至少500 QPS,业务延迟目标<200ms(含网络)。
- 约束:预算有限,优先选择性价比高的VPS实例并结合Cloudflare CDN做全局加速。
2.
环境与软件栈清单
- 操作系统:Ubuntu 22.04 LTS,内核优化参数有调优说明。
- 容器化:Docker 24 + Docker Compose 2 或者使用K3s轻量级Kubernetes。
- 反向代理:Nginx 1.24,作为边缘负载均衡及SSL终端。
- 存储:本地SSD用于容器镜像,NFS或远程对象存储用于持久化。
- 监控/日志:Prometheus + Grafana,Filebeat->ELK或Loki做聚合索引。
3.
部署步骤与命令要点
- 1) 初始化VPS:apt update && apt upgrade;配置时区、swap、ufw基本规则。
- 2) 安装Docker:curl -fsSL get.docker.com | sh;添加用户到docker组并重启会话。
- 3) 部署应用:使用docker-compose.yml定义auth/api/web并配合Nginx反向代理。
- 4) 健康检查:在Nginx中配置proxy_pass和health_check,Prometheus抓取/metrics接口。
- 5) CI/CD:利用GitLab CI或Github Actions推送镜像到私有Registry并在主机上滚动更新。
4.
真实节点配置与对比表
- 下表展示了在本案例中使用的三台strry
韩国VPS节点的详细规格与用途。
- 表格用于快速对比CPU、内存、SSD与带宽等关键参数。
- 说明:带宽指公共出口、流量为每月包流量额度。
- 用途:node-1为负载均衡+监控,node-2/3为业务节点。
- 该配置在实际测试中能稳定支撑约600 QPS的并发峰值。
| 节点 | vCPU | 内存 | SSD | 带宽/月 | 用途 |
| node-1 (LB) | 2 | 4GB | 80GB | 1Gbps / 3TB | Nginx、Prometheus |
| node-2 (app) | 4 | 8GB | 160GB | 1Gbps / 5TB | auth/api容器 |
| node-3 (app) | 4 | 8GB | 160GB | 1Gbps / 5TB | web静态与服务 |
5.
性能测试与观测数据
- 使用wrk或ab进行压测,目标路径/api/login并模拟并发100/300/600。
- 测试结果示例:100并发平均延时120ms,吞吐约1500 req/s;600并发平均延时310ms,吞吐约1200 req/s。
- CPU利用率峰值:node-2/3达到75%-85%,内存使用稳定在60%范围。
- 瓶颈定位:通过htop、iostat和cAdvisor发现I/O与单核CPU限制为主要瓶颈。
- 优化建议:增加副本、使用水平自动伸缩、开启keepalive与连接复用,升级到更大带宽实例。
6.
域名、CDN与DDoS防御实战要点
- 域名解析:在DNS管理中将A记录指向strry负载均衡IP,使用CNAME接入Cloudflare以启用CDN。
- CDN策略:开启缓存静态资源、页面规则压缩并启用Argo优化海外回源。
- DDoS:结合strry提供的网络级DDoS防护与Cloudflare的L7防护,设置速率限制与验证码挑战。
- 防火墙:服务器端配置ufw仅开放80/443/22,22使用非标准端口并限制来源IP。
- 恢复与备份:每天快照、每周备份镜像,制定故障切换流程(切换到预热的备用实例或多区部署)。
来源:开发者实战使用strry韩国vps部署微服务集群案例分享