- 确认症状:连接慢、页面加载时间长、丢包或不稳定。
- 基础测试:使用ping、mtr、traceroute检测延迟与丢包。(示例:ping 香港VPS平均耗时22ms,丢包率1.5%)
- 流量分析:用iftop、nload或VNStat查看带宽占用峰值与均值(示例:峰值180Mbps,平均30Mbps)。
- 应用层检测:用curl -I、ab或siege测量TTFB与并发响应(示例:TTFB=450ms,完整页面加载=3.2s)。
- 日志检查:查看nginx/ apache access/error log 与系统负载、IO等待(iostat、top)。
- 选择节点:优先选择覆盖华南/香港/东亚节点的CDN,节点越近大陆访问延迟越低。
- 缓存规则:静态资源(.js/.css/.jpg/.png/.svg)设置长缓存(Cache-Control: max-age=31536000),HTML可设置边缘缓存并使用stale-if-error。
- 协议优化:启用HTTP/2或HTTP/3、TLS 1.3 与 OCSP stapling,减少握手与多连接开销。
- 源站拉取:配置CDN与VPS之间持久连接(keepalive)与压缩传输(gzip/brotli)以降低回源流量。
- 缓存命中率监控:通过CDN控制台查看命中率目标≥85%,未命中时分析动态请求并调整缓存策略。
- 流量分级:将关键业务(API/登录/支付)设为高优先级,静态资源为普通优先级,备份/下载任务为低优先级。
- Linux tc示例:基本限速与优先级示例:tc qdisc add dev eth0 root handle 1: htb default 30;tc class add ... rate 50mbit 用于控制带宽分配。
- 简单限速命令:tc qdisc add dev eth0 root tbf rate 100mbit burst 32kbit latency 400ms(控制总带宽峰值)。
- 应用层调度:在nginx使用limit_conn / limit_req 控制并发连接与请求速率,防止突发流量压垮VPS。
- 监控与告警:结合Prometheus+Grafana或Zabbix监控接口带宽、丢包并在阈值触发自动扩容或降级策略。
- 边缘防护:优先使用CDN或云清洗(scrubbing)服务分流大流量攻击,降低VPS直接暴露风险。
- TCP/IP硬化:启用SYN cookies、调整net.ipv4.tcp_syncookies=1,并调节连接跟踪表大小(conntrack)。
- iptables限流:示例:iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 200 -j REJECT,防止单IP占满连接。
- 应用防护:部署WAF规则、使用Fail2ban防暴力登录并对异常IP进行黑名单或地理封锁。
- 演练与恢复:定期进行压力测试与应急演练,制定切换到备用节点或扩容CDN的SOP。
- 优先级执行:先诊断再缓存,再实施带宽策略,最后补强防护(节约成本且见效快)。
- 自动化:使用Ansible/Chef进行配置管理,保证tc/iptables/nginx配置一致性与可回滚。
- 备份与故障切换:多可用区部署与异地备份,确保节点故障时CDN可回源到备选服务器。
- 性能迭代:每次优化后记录指标并比对(TTFB、加载时间、带宽占用、丢包率)。
- 成本控制:在保证用户体验前提下评估CDN请求量与清洗流量费用,采用按需扩容策略。
- 案例简介:客户A在香港VPS托管电商站点,原始配置为4 vCPU、8GB RAM、80GB NVMe、带宽200Mbps。
- 优化措施:接入CDN(香港+大陆节点)、nginx设置静态缓存、使用tc限速与nginx limit_req、启用SYN cookies与云端清洗。
- 优化结果:TTFB由450ms降至120ms,平均页面加载由3.2s降至0.9s,带宽峰值由180Mbps降至70Mbps,丢包率从1.5%降到0.1%。
- 可复制配置示例:VPS:4vCPU@2.4GHz、RAM8GB、NVMe80GB、带宽200Mbps;CDN缓存策略:静态文件 365天、HTML 边缘缓存 60秒。
- 下表展示优化前后关键性能指标:
| 指标 | 优化前 | 优化后 |
| TTFB | 450 ms | 120 ms |
| 完整页面加载 | 3.2 s | 0.9 s |
| 带宽峰值 | 180 Mbps | 70 Mbps |
| 丢包率 | 1.5% | 0.1% |