子域名解析在测试环境与线上环境的对照,核心是确认同一子域名在两套环境里分别返回什么记录、请求最终落到哪台服务器,而不是只看配置文件是否写得一样。实际操作中,最容易被忽略也最关键的一步,是在测试环境使用与线上完全相同的子域名进行解析,而不是换成另一个临时名字,否则对照就失去意义。
对照之前,需要把两套环境的信息列清楚,避免边查边改导致数据互相污染。建议先确认以下项目:
api.example.com 与 api-test.example.com 是否属于同一层级。准备阶段还应确认测试环境是否允许外部解析。如果测试子域名只在公司内网生效,那么用公网 DNS 查询工具对照会得到完全不同的结果,这属于预期差异,不是配置错误。
对照时最容易出错的做法,是在测试环境用浏览器打开、在线上用命令行查询,两者工具不同,结论无法直接比较。应当用同一种查询方式分别获取记录:
一个可执行的短例子(以下均为假设示例,不是真实项目结果):假设线上 api.example.com 解析到 203.0.113.10,测试环境希望解析到 203.0.113.20。查询后发现测试子域名同样返回 203.0.113.10,说明测试解析没有生效或指向了线上目标。此时应检查记录是否保存成功、TTL 是否过长、本地是否缓存了旧结果,而不是直接断定解析服务故障。
需要区分“可能原因”和“已经定位的原因”。返回旧地址可能是缓存未过期,也可能是记录本身没改,还可能是上游 CNAME 仍指向线上,三者现象相同但处理方式不同,不能只凭一次查询下结论。
解析记录一致或正确,不等于请求真的到了目标服务器。验证时应从两个层面看:
如果测试子域名解析正确,但访问后拿到的仍是线上数据,可能是反向代理、CDN 缓存或负载均衡仍指向线上。此时应逐层排查,而不是反复修改解析记录。验证时还应确认测试环境是否有独立的证书与访问控制,避免因 HTTPS 配置差异误判为解析问题。
多人协作时,返工往往来自信息只存在于某个人本地。交付时应留下:两套环境的子域名、记录类型、目标值、查询时间与查询方式。TTL 较长的记录在修改后不会立即全局生效,交付说明里应写明预期生效范围与再次核验的时间点,而不是承诺固定见效时间。
维护中还要注意,robots.txt 的抓取限制不等于可靠的索引移除,站点地图不保证收录,HTTPS 也不保证安全无漏洞或排名。这些与解析对照不是同一层问题,不应混在同一份交付说明里当作解析结论。
下一步:把测试环境与线上环境的子域名记录整理成一张对照表,标注每条记录的查询方式与最近一次核验时间,作为后续变更的基线。