1)选择VPS:优先选带有良好网络出口的美国机房(如NY、LA)。推荐提供商:Linode、Vultr、DigitalOcean、Hetzner(注意地域差异)。
2)系统与规格:Ubuntu 22.04 或 Debian 12,2核2G内存起步;带SSD和至少1Tb流量/按需扩容。
3)域名解析:在域名管理后台新增A记录指向VPS公网IP,等DNS生效(可先用hosts做本地测试)。
1)更新系统并安装Nginx:sudo apt update && sudo apt -y install nginx。启动并设置开机自启:sudo systemctl enable --now nginx。
2)开放端口:在云面板或UFW允许80/443端口:sudo ufw allow 80,443/tcp && sudo ufw enable。
3)安装Certbot自动签发证书:sudo apt -y install certbot python3-certbot-nginx,运行:sudo certbot --nginx -d yourdomain.com。
1)创建server块,监听80/443,确保响应CDN的主机头(Host)。示例:
server { listen 80; server_name yourdomain.com; return 301 https://$host$request_uri; }
server { listen 443 ssl; server_name yourdomain.com; ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem; ... location / { try_files $uri $uri/ /index.php?$args; } }
2)为静态文件设置长缓存:location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ { expires 30d; add_header Cache-Control "public, max-age=2592000"; }
1)常见选择:Cloudflare(免费代理+WAF)、AWS CloudFront(可控性强)、BunnyCDN/KeyCDN/StackPath(成本可控、延迟低)。
2)创建拉取域/分发:填写Origin为你的域名或VPS IP(建议填写域名并在DNS里把域名指向VPS),开启HTTPS从源站拉取。
3)如果使用Cloudflare,DNS中把该记录设置为“Proxied”;如果使用CloudFront/其他CDN,创建CNAME(例如 cdn.yourdomain.com 指向 CDN 分发域名)。
1)SSL:推荐在VPS与客户端之间都使用TLS。若Cloudflare使用Flexible会在Cloudflare到源站间不加密,尽量使用Full(strict)。
2)HTTP/2与QUIC:在Nginx启用http2(listen 443 ssl http2;),CDN通常自带HTTP/2或HTTP/3(QUIC),可在CDN面板打开HTTP/3以减少延迟。
3)真实IP:当使用反向代理(如Cloudflare)时,在Nginx启用realip模块并信任CDN IP段,示例:
set_real_ip_from 103.21.244.0/22; real_ip_header X-Forwarded-For;(按CDN官方IP列表配置)
1)静态资源(图片、JS、CSS):在源站设置长缓存头(Cache-Control max-age 2592000),CDN配置为长期缓存并开启压缩和Brotli。
2)动态页面:设置CDN规则绕过缓存或按Cookie/URL参数区分缓存,重要API路径可设置为不缓存。
3)缓存刷新:掌握CDN面板的Purge功能与API(自动化脚本),例如变更静态资源后调用CDN API清理缓存。
1)在VPS防火墙中只允许来自CDN的IP段访问端口80/443(以及管理端口如SSH限指定IP)。获取并定期更新CDN官方IP列表。
2)部署WAF规则(Cloudflare自带),在Nginx层启用基本防护:限制请求体大小,开启rate-limit。
3)禁用不必要服务,定期更新系统补丁并配置自动证书续签(Certbot会自动续签)。
1)Gzip/Brotli:在Nginx或CDN端启用Brotli(效率更高),Nginx可用模块或让CDN处理压缩。
2)开启缓存预加载与资源合并:利用CDN边缘缓存减少回源请求,开启Resource Hints(prefetch/preload)配合长缓存。
3)图片与视频:使用CDN的图像优化服务(如自动WebP转换、按需尺寸)或在源站生成多规格并使用CDN的变体URL。
1)基本测试命令:curl -I https://yourdomain.com 查看返回头部(观察X-Cache、CF-Cache-Status等),traceroute yourdomain.com 或 mtr 检查路径。
2)线上性能工具:使用WebPageTest、GTmetrix、Pingdom 分别在不同地区测试加载时间与首次字节时间(TTFB)。
3)监控与告警:启用CDN与VPS的日志收集(Access/Error),结合Prometheus/Grafana或第三方监控(UptimeRobot)设置可用性告警。
答:Cloudflare免费版适合静态资源加速、基础DDoS缓解与简单的全球分发,能显著降低海外延迟。但免费版在细粒度控制(如自定义边缘规则、日志导出或企业级SLA)上有限。对延迟敏感或需要更低回源率的业务,建议升级到付费计划或选择低延迟的付费CDN(如BunnyCDN或CloudFront)并结合多节点/多CDN策略。
答:推荐做法是静态资源使用指纹化(文件名加hash),部署新版本时变更文件名以便CDN自动拉取新资源;对于必须同名的资源,调用CDN的API进行单个文件清除(Purge)。在发布流程中加入自动化脚本:先在源站部署并验证,再触发CDN清理,最后回归测试。
答:步骤:1)用WebPageTest或从问题地区的VPS检查DNS解析和路由(traceroute/mtr);2)确认CDN边缘是否命中(查看响应头X-Cache或CF-Cache-Status);3)若回源延迟高,考虑在目标地区增加边缘或使用多区域源站(例如在美国多个机房或搭配海外节点);4)考虑使用GeoDNS或多CDN负载(通过DNS策略按地域分发到不同CDN)以获得更稳定的跨地区体验。