高权重的域名进行CDN接入操作, 这一行为本身并不会直接造成搜索引擎对网站降权的后果, 可是节点配置方面的情况、DNS解析方式的选择、以及HTTPS证书策略的应用等等这些细节如果处理得不妥当, 那么就可能引发收录出现异常情况, 或者导致权重发生波动现象, 所以正确部署的核心原则就是, 一定要保持域名的所有权归属处于不变的状态, 让解析链路更加透明, 还要合理安排缓存策略, 并且在上线之后需要持续地进行监控观察。
DNS解析配置
把高权重的域名放到CDN后面去之后, 关于该域名的DNS记录是必须要做出如下这种调整的。
你可以将域名的A记录或者是CNAME, 去指向到那个CDN的入口节点, 这样就不用在直接指向源站的IP地址了。
NS记录是保留在了域名注册商那边, 从而确保了搜索引擎可以验证域名的注册主体没有发生过变化。
TTL值的建议是要设置在300秒以内的, 这样的好处就是能够在发生故障的时候实现快速的切换操作, 但是不建议大家将其长期都设置为最低的值, 原因是为了防止DNS所查询的压力变得过大。
我们以gname.xin这种高权重的域名作为一个具体例子来进行说明, 大家可以看到, 在这样的域名的DNS解析链路里面, 其中的每一跳都应当保持简单和清晰的状态, 必须避免去出现多层的CNAME互相嵌套的这种复杂情况, 从而做到有效减少整体的解析所产生的延迟时间以及降低发生故障的潜在风险点。
节点覆盖策略
这主要是面向国内的那些用户, 所以现在得去优先挑选那些属于国内的cdn节点, 这样做能够保证已经完成了备案手续的域名可以合乎规范地进行接入。
用户群体主要是海外的, 因此要选那些能够覆盖到目标区域的节点。需要把从一端到另一端的延迟时间控制在50毫秒之内。
这种混合的场景, 就是要把智能调度这个事儿给启用起来, 然后还要按照用户IP的这个情况, 去自动地分配那个离得最近的节点。
高权重域名这种类型的事物, 通常是会承载住大量那种从搜索引擎来的正常访问流量的。针对这种情况的话, 对于回源策略方面的建议是, 最好设定一个缓存命中率的指标目标。这个目标数值需要达到百分之九十或者更高的程度。之所以这样做的原因是, 可以减轻来自源站服务器的那个压力负担。
HTTPS与证书
必须要把全链路的HTTPS给启用起来, 也就是从客户端到CDN再到源站, 整个传输过程都需要进行加密操作。
证书上的那个主体名字, 必须和域名完全一样, 不能差一点点, 如果是那种泛域名的证书, 则需要确认它到底覆盖到了哪些范围。
如果域名已经配置了HSTS响应头的话, 那么在CDN这一侧就必须把设置也同步地搞好, 这样才会去避免说因为协议被降低级别而触发了浏览器的安全方面的警告。
缓存策略
静态资源, 这其中包括CSS、JS、图片等, 缓存TTL设为7天至30天, 配合文件名哈希变更实现更新。
对于动态页面来说, 可以建议将缓存TTL设置为5分钟到10分钟之间的一个数值;至于那些关键入口页的话, 是可以选择不进行缓存操作的。
统一设置Cache-Control和ETag这两个响应头, 使得CDN与源站在缓存行为上面保持一直。
常见误区与排查
1. 直接把DNS服务器改到CDN服务公司那边, 这种做法会把域名和原先那个注册商之间的管理关系给切断, 结果可能会导致一些搜索引擎觉得这个域名的管理者已经换了人。所以建议最好只是去修改一下A记录或者CNAME记录, 千万不要去动那些NS记录。
2. 当回源IP和源站真实IP不一致的时候, CDN在回源的过程中如果使用了非源站的IP地址,那么搜索引擎里的爬虫可能会把这个情况识别为不同的服务器, 这就会对收录的一致性带来不好的影响。
3. 要把 robots.txt 和 sitemap 的缓存都给忽略掉, 这两项内容必须设置为不缓存, 或者就是极短的缓存时间, 这个时间要控制在 60 秒或者更短以内, 这样来确保搜索引擎能够获得实时的最新抓取规则。
上线验证清单
更换DNS之后, 在48小时以内, 使用第三方DNS查询工具来验证全球各个区域的解析结果。
通过搜索引擎里面的site:这一个指令, 去检查一下所收录那些页面的数量, 看看是否处于一种稳定的状态。
对CDN面板的相关数据进行查看, 这些包括回源率、缓存命中率以及SSL握手的成功率。
需要把7天这个时段的搜索排名观察好, 一旦发现排名出现了持续往下走的状况, 就得马上去排查一下CDN的这个响应头部分是不是有异常的地方。
总结
在部署CDN的时候需要用到高权重的域名, 这个时候要遵循那十六字的原则, 意思就是解析要保持透明, 证书得要完整, 缓存的设置得合理, 还有监控的工作要做到位。
配置工作做完以后需要保持至少两周的时间来进行观察在这个期间不要同时去修改DNS、证书以及缓存策略这几项参数中的多个内容这样做是为了确保万一出现了问题的话可以快速地找到原因所在。


