跳到主要内容

建站解析实战:根域名、www、子域与 CDN

这篇按「一个网站从能访问到好用」的顺序,给出可以直接照抄的解析组合。

一、最小可用配置​

假设服务器公网 IPv4 是 203.0.113.10,域名是 example.com:

主机记录类型线路记录值TTL
@A默认203.0.113.10600
wwwCNAME默认example.com.600

效果:

  • example.com → 203.0.113.10
  • www.example.com → example.com → 203.0.113.10

为什么 www 用 CNAME:

  • 以后换服务器只改 @ 一条记录。
  • www 和根域名始终指向同一台机器。
  • 如果 CDN 厂商要求 www 单独 CNAME 到 CDN,再按 CDN 的要求改。

如果服务器有 IPv6,再加一条:

主机记录类型线路记录值
@AAAA默认2001:db8::10
wwwAAAA默认2001:db8::10

www 如果已经是 CNAME,就不要再加 AAAA;CNAME 和 A/AAAA 不能在同一主机共存。需要双栈时,www 也改用 A + AAAA。

二、常见子域规划​

用途主机记录类型记录值
博客blogCNAMEexample.com. 或博客平台给的域名
APIapiAAPI 服务器 IP
管理后台adminA后台服务器 IP(建议加访问限制)
对象存储staticCNAME存储/CDN 提供的域名
邮件服务器mailA邮件服务器 IP
测试环境testA测试服务器 IP

子域不需要单独购买,也不需要单独备案(但主域名要备案,且部分接入商要求子域也接入)。

三、泛解析:一次配置所有子域​

配置一条:

主机记录类型线路记录值
*A默认203.0.113.10

效果:

  • abc.example.com、foo.example.com 等未单独配置的子域都指向该 IP。
  • example.com 本身不受影响,仍需要 @ 记录。
  • 已经显式添加的 www、api 等记录优先,不会被泛解析覆盖。

适用场景:

  • 多租户 SaaS,每个客户一个子域。
  • 测试环境临时域名。
  • 个人服务统一入口。

注意:

  • 泛解析会让所有不存在的子域都返回同一个 IP,可能被扫描器利用,建议配合 Web 服务器默认站点拦截。
  • 泛解析 + HTTPS 需要通配符证书(*.example.com),普通单域名证书不匹配。
  • 泛解析不匹配多级子域,例如 a.b.example.com 需要单独配置或再委派。

四、接入 CDN​

CDN 厂商通常会给你一个 CNAME 目标,例如:

www.example.com.cdn.dnsv1.com.

配置:

主机记录类型线路记录值
wwwCNAME默认www.example.com.cdn.dnsv1.com.

根域名 example.com 接 CDN 要小心:

  • 标准 DNS 不允许根域名直接 CNAME(会与 MX、NS 等冲突)。
  • 部分 CDN 支持「CNAME 展平 / CNAME Flattening」,可以按厂商文档把根域名 CNAME 到 CDN。
  • 如果厂商只给 CNAME、又不支持展平,常见做法是:
    • 根域名 301 跳转到 www;
    • 或使用厂商提供的固定 A/AAAA 回源地址;
    • 或把根域名解析托管到支持展平的 DNS 服务商。

不要为了接 CDN 把根域名的 MX 记录删掉,否则邮箱会收不到信。

五、多台服务器轮询​

同一主机、同一线路可以加多条 A 记录:

主机记录类型记录值
apiA203.0.113.11
apiA203.0.113.12

DNS 会轮询返回,起到最简单的负载均衡作用。

限制:

  • 没有健康检查,一台挂了仍然会返回。
  • 会话保持、数据库一致性要应用层自己处理。
  • 需要权重/健康检查时,用负载均衡或付费 DNS 套餐。

六、URL 转发:301 跳转与隐性转发​

显性 URL(301)​

访问 old.example.com 自动跳到 https://new.example.com/,地址栏变成新地址。

主机记录类型记录值
@显性 URLhttps://new.example.com/

隐性 URL(iframe)​

地址栏保持 old.example.com,内容显示目标站。目标站不允许 iframe 嵌套时会白屏。

限制​

  • 转发前域名只支持 HTTP,不支持 HTTPS 直接转发;需要 HTTPS 跳转时用 Nginx/CDN 配置 301。
  • 前后域名都要完成工信部备案。
  • 免费版通常只有 2 条 URL 转发。
  • 记录值必须是完整 URL,不能是 IP 或 IP:端口。

七、CAA:限制谁能给你签证书​

如果证书只用 Let's Encrypt:

主机记录类型记录值
@CAA0 issue "letsencrypt.org"
@CAA0 issuewild "letsencrypt.org"

如果同时用腾讯云免费证书、DigiCert 等,要把每个 CA 都列出来,否则未列出的 CA 会签发失败。

不确定时先不要加 CAA;加了之后用 dig CAA example.com 检查。

八、HTTPS 与证书​

解析只负责把域名指向服务器,证书是另一件事:

  • 单域名证书:只匹配 example.com 或 www.example.com。
  • 泛域名证书:匹配 *.example.com,不匹配根域名。
  • 根域名 + 泛域名同时需要时,证书要包含两个 SAN。

申请与自动续期:

  • 用 acme.sh 的 DNS API 模式可以自动续期,参考 使用 acme.sh 自动申请证书。
  • 证书申请前,确保 _acme-challenge 的 TXT 记录能正常添加和查询。
  • 如果配置了 CAA,确认 CA 在允许列表里。

九、上线检查清单​

  • @ 和 www 都有记录,且线路为「默认」
  • www 没有和 A/AAAA 冲突
  • 服务器安全组/防火墙放行 80/443
  • 国内服务器已完成 ICP 备案
  • HTTPS 证书域名匹配,证书链完整
  • 子域/泛解析没有把不该暴露的服务指出去
  • 根域名接 CDN 时没有破坏 MX/TXT
  • dig、curl -I、浏览器各验证一遍

相关阅读: