
办网站这行干久了你会发现一个很有意思的现象服务器配置不差带宽也够可用户反馈“你家网站真慢”的声音就是压不下去。我第一次遇到这个问题是给一个做地方生活服务的站点做加速改造。网站部署在北方某城市的单线机房服务器负载常年不到30%但客服那边每周都能收到用户吐槽——打开首页要转四五秒。排查到最后问题不在服务器而在网络链路上不同运营商之间的互联互通瓶颈才是用户体验差的真正元凶。后来我接入360CDN把跨网加速和缓存优化一起做了首页耗时从平均3秒左右降到1秒以内。这篇就把完整的配置流程、优化思路和实测数据整理出来给同样被“跨网慢”折磨的运维朋友做个参考。1. 页面加载慢的根因单线机房跨网绕路的代价有多大1.1 一次客服投诉让我开始关注“跨网”这个词那次投诉记录我记得很清楚用户反馈“首页图片转圈圈等了两分钟还没出来”客服转给我时还特意标注了“用户用的是移动宽带”。我当时的第一个反应是查服务器负载和带宽——一切正常CPU 15%入向带宽不满1Mbps。这就很奇怪了服务器根本没到瓶颈为什么用户就是打不开带着疑问我做了个简单的拨测让身边联通、电信的朋友同时访问站点再对比一下移动网络下的状态。结果差距非常明显联通用户大约2秒能加载完电信用户稍慢但也能忍移动用户直接卡成狗首页主图加载用了接近8秒。后续用traceroute做路由追踪问题浮出水面了。服务器所在的机房是电信单线移动用户访问时数据包要先从移动网出去绕到移动与电信的骨干互联节点再穿到电信网内最后才到达机房。这个“穿越”动作的代价非常大每一跳的延迟都在叠加高峰期丢包率能到5%左右。换句话说不是服务器慢是路太绕了。1.2 国内网络互通的现状BGP多线为什么不能解决所有问题做运维的朋友应该都听过“BGP多线机房”的说法不少服务商也拿这个当卖点。原理上说BGP多线机房可以通过动态路由协议和电信、联通、移动同时交换路由让不同运营商的用户都找到相对较短的路径。但实际操作中BGP多线并没有完美解决“跨网慢”的问题。原因有二。一是成本BGP带宽比普通单线带宽贵不少小站点买不了太大带宽峰值一冲就容易拥塞。二是路由的“最近”往往是逻辑上的近物理上数据包依然要经过运营商之间的长途骨干链路。尤其在一些二三线城市移动用户访问部署在一线城市的BGP机房延迟依然能到30-50ms且中间任何一跳出现抖动体验就直线下跌。所以如果你的用户群体分布全国、且各个运营商都有单靠换机房、加带宽很难彻底解决跨网问题。正确思路是把内容分发到离用户更近的节点去——这正是CDN内容分发网络存在的基本逻辑。1.3 CDN加速的本质就是把内容搬到用户家门口打个比方你家厨房在村东头但村民大多住在村西头每次打饭都得跑一整条村。CDN做的事情就是在村西头设一个标准化的“配菜站”把菜单和半成品提前放过去村民直接在配菜站取餐不用再往村东头跑。落到技术上CDN在全国乃至全球部署了大量边缘节点每个节点都缓存源站的静态内容。用户访问时DNS解析会把请求调度到离他最近的节点节点直接响应内容。这样一来用户到节点之间的链路短、延迟低即使节点需要回源走的也是CDN厂商铺设的优化链路绕开公网拥堵段。我选360CDN来看这件事还有一个现实考量它除了常规的静态加速对跨网调度的处理比较细致而且控制台的缓存配置粒度够用适合我这种需要快速上手的运维人员。下一篇笔记里的所有操作都来自我在实际业务上的完整接入过程。2. 接入360CDN前的准备工作域名、源站、套餐的取舍2.1 域名备案是硬门槛别等配置到一半才发现翻车360CDN的加速域名要求完成ICP备案这一点国内主流CDN都是统一要求没什么讨价还价的余地。我见过不止一个同事兴冲冲在控制台添加域名结果提示“该域名未备案”才意识到自己把这一步漏了。备案几件事要提前确认域名备案主体和CDN账号实名主体一致否则有些平台会判定归属异常备案信息里有没有正确的网站名称和服务类型管局审核通过后再接入CDN更稳妥如果是新注册域名备案刚下来还没满24小时部分CDN平台的校验接口可能还没同步稍等再试另外提醒一下加速域名和源站域名可以是同一个域名体系下的不同子域但不要让加速域名和源站域名完全相同否则会出现“CDN回源又回到CDN节点”的死循环。常见的做法是www.example.com做加速域名origin.example.com做源站域名源站域名不接入CDN。2.2 源站配置IP回源与域名回源的场景差异360CDN支持两种回源方式IP回源和域名回源。简单说IP回源就是CDN节点直接请求你填写的服务器IP域名回源则是CDN节点解析你填写的源站域名后再访问。两种方式各有适用场景如果源站是独立服务器、且IP固定用IP回源最直接少一层DNS解析也少一个“域名解析故障”的变量如果源站本身在高防IP后面或者使用了SLB负载均衡建议用域名回源这样后端扩容、切换IP都不需要去CDN控制台改配置如果你的源站域名和加速域名是同一个域名一定要检查是否开启了“回源跟随301/302”之类的选项防止回源请求被转发回CDN节点造成环路我的站点用的是IP回源因为源站就一台服务器IP长期固定。配置时填的是服务器公网IP回源端口保持默认80。如果你有HTTPS源站别忘了在控制台勾选“回源协议HTTPS”同时确认源站证书是有效的否则回源会直接失败。2.3 如何圈定套餐范围流量预估与功能需求360CDN提供了不同规格的套餐从按量计费到包年包月都有。选套餐前别凭感觉最好先看两个数据第一是日均请求量和带宽峰值。可以翻一下源站Nginx日志统计最近30天的访问量、页面平均大小、图片和脚本占总流量的比例。假设你首页1.5MB日均PV 5万那峰值带宽至少得留20Mbps以上按量计费或者选择对应带宽套餐才能撑得住。第二是功能清单。看你的站点需不需要HTTPS证书管理、缓存刷新频率、访问控制这些能力。有些基础套餐的刷新配额很少一天只能刷新几次如果你发布频繁用起来会很憋屈。我当时估算下来月流量在600GB左右选了中等档位后来实测CDN承载了约85%的流量源站带宽压力小了很多这部分后面会细说。3. 360CDN配置实操从添加域名到CNAME切换全流程3.1 添加加速域名时的关键配置项进入360CDN控制台后第一步是添加加速域名。这里有几个必填项需要想清楚再填一是业务类型。对普通网站来说选“网页加速”即可如果站点有大量视频文件考虑“点播加速”如果做软件安装包下载选“下载加速”。业务类型会影响节点缓存策略和调度优先级选错不会导致无法使用但可能会让某些类型的文件命中率偏低。二是源站信息。按上一节准备好的IP回源或域名回源填写。这里有个容易忽略的字段叫“回源HOST”。回源HOST指的是CDN节点回源时请求头中携带的域名。如果你的源站Nginx配置了多个server块通过server_name区分不同站点那一