1.1 目标:面向北美/全球的营销落地页选择美国服务器做主源站,面向亚太做快速回源或预渲染可选香港VPS,前端统一由CDN全球分发。
1.2 架构示例:用户 -> 最近CDN节点 -> CDN缓存(或回源) -> 源站(主:美国服务器;备/边缘:香港VPS)。此架构兼顾北美延迟与亚太回源性能。
2.1 选择美国服务器:挑带有高速上行、固定公网IP与良好出口带宽的VPS/云主机(例如AWS EC2/us-east-1、DigitalOcean NYC、Vultr等)。
2.2 选择香港VPS:挑延迟低、支持IPv4/IPv6和SSH的供应商(例如阿里香港、腾讯云香港或Linode香港节点)。将其用作渲染缓存、SSR或备用源。
2.3 选择CDN:优先选有全球节点、支持自定义缓存规则、SSL托管与WAF的供应商(Cloudflare、CloudFront、Fastly、阿里云CDN、腾讯云CDN)。
3.1 安装Nginx与Certbot(示例命令):apt update && apt install -y nginx certbot python3-certbot-nginx。确保防火墙开放80/443端口。
3.2 配置站点并启用HTTPS:在Nginx server block里设置server_name,root,location指向,重启nginx,运行certbot --nginx获取Let’s Encrypt证书。
3.3 性能优化:启用gzip、brotli、HTTP/2,配置sendfile、tcp_nopush、keepalive_timeout,设置静态资源Cache-Control长缓存。
4.1 在CDN控制台新建分发/域名,Origin填写美国服务器的公网IP或域名;如需回源到香港VPS做备用,可在CDN支持下配置Origin Failover或多个Origin Pool。
4.2 设置缓存策略:静态资源(/static, .css, .js, .jpg)长TTL(7天或更长),动态页面短TTL或设置缓存键包含Cookie/Query白名单。设置Ignore Query String或根据推广参数自定义缓存键。
4.3 DNS指向:将域名的A记录指向CDN提供的IP或使用CNAME到CDN域名;不要直接指向源站以免绕过CDN。
5.1 页面缓存:营销落地页如果基于URL参数(如utm_source),在CDN中设置规则:对常见UTM保留为不影响缓存键,或在落地页用JS读取并通过localStorage存储UTM再向后端发送,避免每次请求导致缓存失效。
5.2 缓存刷新与预热:部署新内容后调用CDN Purge API批量清除相关路径,并使用预热脚本(curl并发请求CDN边缘URL)把常见页面预热到边缘节点。
5.3 回源负载均衡:在CDN或DNS层面配置主源(美国)+备源(香港),并设置健康检查和权重,确保美国源故障时自动回落到香港VPS。
6.1 基本网络测试:使用curl -I https://yourdomain 观察响应头(CF-Cache-Status / X-Cache),使用traceroute或mtr检查路径延迟。
6.2 页面性能检测:使用WebPageTest、GTmetrix、Pingdom在目标国家节点跑测试,比对“有CDN”与“直连源站”差异,记录首字节时间(TTFB)和首屏时间。
6.3 监控与告警:启用CDN和服务器的实时日志、带宽与请求量监控,设置流量超限/错误率报警,并保留访问日志用于营销点击归因。
7.1 SEO与用户体验:启用HTTPS、设置正确的Cache-Control、使用hreflang(若多语言),并确保CDN不阻断爬虫(为Googlebot设置合理缓存策略)。
7.2 安全与合规:启用CDN的WAF、DDoS保护,限制源站只接受来自CDN的回源(通过HTTP头校验或IP白名单),开启速率限制以防刷量。
7.3 成本控制:设置缓存命中率目标(>90%),优化静态资源,利用香港VPS做区域边缘渲染可减少跨洋回源流量成本。
8.1 问:为什么需要同时使用美国服务器和香港VPS,而不是只用CDN?
8.2 答:CDN负责边缘缓存,但仍需源站提供动态内容和回源能力。美国服务器作为主源对北美用户延迟最低,香港VPS在亚太能作为备源或边缘预渲染节点,配合CDN可在全球范围内兼顾速度与可靠性。
9.1 问:如何保证CDN回源时不会暴露源站IP?
9.2 答:在源站防火墙只允许CDN的回源IP段访问并关闭源站的直接域名解析,使用CDN提供的自定义回源头(如X-Forwarded-For校验)和HTTP Basic/Token验证,避免源站被直接请求。
10.1 问:推广活动中遇到UTM参数导致缓存击穿怎么办?
10.2 答:将UTM参数不纳入缓存键(在CDN中忽略常见UTM或将其设置为不影响缓存),或在前端用一次性脚本读取UTM并通过后台事件记录,随后返回标准不带UTM的重定向URL以便边缘缓存命中。