服务器放哪:境内、境外与 CDN 的实际差别
放哪台机器不只是技术问题。本文说明境内境外在备案、访问速度和合规上的差别,以及 CDN 能解决与不能解决的事。
- 服务器选址牵涉备案、速度与合规,上线后迁移成本高,应在项目开始时定下。
- 备案通常以周计且材料不齐会反复退回,必须算进项目排期而非开发完再办。
- 备案绑定服务器与域名的组合,换提供商或换域名可能需要重新办理。
- CDN 改善静态资源加载,但不能替代备案,对动态内容帮助有限。
- CDN 回源未携带真实客户端地址时,来源分析与按 IP 限频会全部失效。
服务器放境内还是境外,这个决定牵涉备案、访问速度、合规要求和运维方式,而且一旦上线迁移成本不低。它应当在项目开始时就定下来,而不是开发完再考虑。
境内:要备案,但访问体验更好
面向大陆用户的站点,服务器放境内是常规选择。代价是必须完成备案,这是一个有明确流程和时间的前置条件,通常以周计,材料不齐会反复退回。项目排期必须把它算进去,而不是等开发完成才开始办。
备案绑定的是服务器与域名的组合。换服务器提供商、换域名,都可能需要重新办理或变更,这一点在迁移时经常被忽略。
境外:没有备案,但访问质量不稳定
境外主机省去了备案流程,适合主要面向海外用户的站点。但大陆用户访问境外服务器的速度和稳定性不可控,不同时段、不同运营商差异很大,这是无法靠技术手段完全解决的。
如果业务同时面向境内外客户,常见做法是分站部署:面向大陆的站点放境内并备案,面向海外的放境外,两边内容可以共用一套管理后台。这比用一个站点强行兼顾两边更稳妥。
CDN 能做什么,不能做什么
- 能明显改善静态资源的加载速度 —— 图片、脚本、样式从就近节点返回;
- 对动态内容的帮助有限,页面需要实时生成时仍要回源;
- 不能替代备案。使用境内 CDN 节点服务大陆用户,同样需要相应的备案手续;
- 会让故障排查变复杂,用户看到的内容可能是缓存版本,调试时要先确认是否命中缓存。
回源与缓存的常见坑
更新内容后页面没变,多数是缓存未失效。应当在发布流程里加入缓存刷新步骤,并对带版本号的静态资源使用长缓存、对 HTML 使用短缓存或不缓存。两者用同一套策略,要么更新不及时,要么失去了缓存意义。
另外要确认 CDN 回源时携带的真实客户端地址 —— 配置不当会导致服务端日志里全是 CDN 节点的地址,访问来源分析和按 IP 限频全部失效。
常见问题
网站服务器放境内还是境外?
主要面向大陆用户就放境内并完成备案,访问质量更可控;主要面向海外用户可放境外省去备案流程。两边都要服务时,常见做法是分站部署、共用一套管理后台,比单站强行兼顾更稳妥。
用了 CDN 还需要备案吗?
需要。CDN 不能替代备案,使用境内节点为大陆用户提供服务同样要办理相应手续。CDN 解决的是静态资源的就近加载,与是否具备接入资质是两回事。
为什么更新了内容页面还是旧的?
多数是 CDN 或浏览器缓存未失效。应在发布流程中加入缓存刷新步骤,并区分策略:带版本号的静态资源用长缓存,HTML 用短缓存或不缓存。两者使用同一套策略必然顾此失彼。
参考资料
- Cloudflare SSL/TLS Documentation · Cloudflare
- Managing Multi-Regional and Multilingual Sites · Google Search Central