1.
准备与基线测量
在动手前先做基线测试。步骤:1) 用本地或海外机器执行 ping、traceroute、mtr:例如 traceroute -I your.vps.ip 和 mtr -rwc 100 your.vps.ip,记录丢包与跳数;2) 用 curl 测试页面时间:curl -o /dev/null -s -w "%{time_connect} %{time_starttransfer} %{time_total}\n" https://your.domain;3) 用 speedtest-cli 测带宽:apt install speedtest-cli && speedtest-cli。把这些数据保存,便于前后对比。
2.
内核与 TCP 层加速(启用 BBR 等)
在 VPS 上操作(以 Debian/Ubuntu 为例):1) 检查内核版本 uname -r,需>=4.9 支持 BBR;2) 启用 BBR:sudo sysctl -w net.core.default_qdisc=fq && sudo sysctl -w net.ipv4.tcp_congestion_control=bbr;3) 永久生效:在 /etc/sysctl.conf 添加 net.core.default_qdisc=fq 和 net.ipv4.tcp_congestion_control=bbr,然后 sudo sysctl -p;4) 其他优化:添加 net.core.somaxconn=1024、net.ipv4.tcp_tw_reuse=1、net.ipv4.tcp_fin_timeout=15 等,同样写入 sysctl.conf 并生效。
3.
Web 服务器与传输优化(Nginx/Caddy)
配置 Nginx 以减少延迟:1) nginx.conf 中启用 sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; worker_connections 10240; 2) 启用 gzip 与 brotli(若有模块):gzip on; gzip_types text/plain application/javascript text/css application/json; brotli on; 3) 启用 HTTP/2:listen 443 ssl http2;若要 HTTP/3/QUIC,推荐使用 Caddy 或 Cloudflare 的 HTTP/3 方案,Caddy 默认支持 QUIC,直接替换证书并启用即可。
4.
选择并接入 CDN(以 Cloudflare 为示例)
步骤:1) 注册并添加站点到 Cloudflare,验证域名;2) 修改域名的 Nameserver 指向 Cloudflare 提供的 NS;3) 在 DNS 面板把 A/AAAA/CNAME 记录设置为 proxied(橙云);4) SSL/TLS 设置选择 Full (strict),上传 Origin 证书到 VPS 并在 nginx 配置使用;5) 在 Cache Rules/页面规则里设置静态资源长缓存(例如 /static/* Edge Cache TTL 1 month),并启用 Brotli、HTTP/2/3;6) 如需动态加速,可开启 Argo Smart Routing(付费)或 page rules 优化。
5.
Origin(源站)保护与真实 IP 恢复
保证源站安全与日志准确:1) 在 VPS 防火墙(ufw/iptables)只允许 Cloudflare 的 IP 段访问 80/443(可以从 Cloudflare 官网抓取 IP 列表);2) 在 nginx 中安装 real_ip 模块并配置 set_real_ip_from
; real_ip_header X-Forwarded-For; 3) 在服务器端启用 SSL 会话复用、OCSP Stapling,降低 TLS 握手时间;4) 对 API 接口可设置较短的缓存或使用边缘缓存策略。
6.
缓存策略与静态资源加速
实践建议:1) 在应用端为静态文件设置 Cache-Control: public, max-age=31536000,并采用文件指纹(hash)避免缓存冲突;2) 对图片使用延迟加载、WebP 格式与 CDN 的图片处理(如 Cloudflare Image Resizing);3) 对动态页面使用 Edge Cache 或 Cache Everything(设置适当 Vary、Cookie 规则);4) 设置正确的 ETag/Expires,使用 CDN 的边缘规则按需回源。
7.
网络层额外工具与路由优化
可选但有效的做法:1) 若常见到跨境高延迟,考虑付费的智能路由服务(如 Cloudflare Argo、NetLux、Akamai),或使用 Anycast 的 CDN 提供商;2) 调整 MTU(若有分片问题)sudo ip link set dev eth0 mtu 1400;3) 使用 keepalive、连接池、HTTP/2 多路复用减少握手;4) 对长连接业务可考虑使用 TCP 加速器或 TCP-fast-open(需客户端支持)。
8.
监控、回归测试与自动化
上线后持续验证:1) 建立脚本周期性跑 curl/traceroute/mtr,并记录到监控平台(Prometheus + Grafana 或简单的日志文件);2) 使用 CDN 提供的分析与 Page Rules 报表监控命中率、节省流量;3) 每次修改后重复基线测量,与第一步数据对比,确认延迟与 TTFB 改善;4) 用 CI/CD 自动化证书更新、缓存清理的 API 调用。
9.
常见问答一:部署CDN后为何仍然有部分用户慢?
答:原因可能包括用户到最近 CDN 节点路由质量差、DNS 未及时生效、某些资源被设置为不缓存、或应用端返回的 Cache-Control 禁止边缘缓存。排查步骤:用用户所在网络做 traceroute,查看 DNS 解析到的 IP 是否为 CDN;检查响应头与 CDN 面板的缓存命中率,必要时把资源设置为可缓存并启用 Edge Cache。
10.
常见问答二:如何保证源站安全同时允许CDN回源?
答:在防火墙只允许 CDN 回源 IP 段访问 80/443,或者使用 Origin Pull 证书(Cloudflare Origin CA)并在 nginx 强制验证客户端证书。这样只有经过 CDN 的请求能成功到达源站,同时保留服务器管理端口对运维 IP 开放。
11.
常见问答三:我在沙田机房,有哪些CDN或加速策略优先级最高?
答:优先顺序建议:1) 先做内核/TCP 与 Web 服务优化(成本最低、回报高);2) 使用覆盖香港与华南的 CDN(Cloudflare、Akamai、百度云加速或本地 CDN)并启用 HTTP/2/3;3) 若跨境访问量大,考虑付费智能路由或 Anycast 服务。实践中结合监控数据调整即可。