建站解析实战:根域名、www、子域与 CDN
这篇按「一个网站从能访问到好用」的顺序,给出可以直接照抄的解析组合。
一、最小可用配置
假设服务器公网 IPv4 是 203.0.113.10,域名是 example.com:
| 主机记录 | 类型 | 线路 | 记录值 | TTL |
|---|---|---|---|---|
@ | A | 默认 | 203.0.113.10 | 600 |
www | CNAME | 默认 | example.com. | 600 |
效果:
example.com→203.0.113.10www.example.com→example.com→203.0.113.10
为什么 www 用 CNAME:
- 以后换服务器只改
@一条记录。 www和根域名始终指向同一台机器。- 如果 CDN 厂商要求
www单独 CNAME 到 CDN,再按 CDN 的要求改。
如果服务器有 IPv6,再加一条:
| 主机记录 | 类型 | 线路 | 记录值 |
|---|---|---|---|
@ | AAAA | 默认 | 2001:db8::10 |
www | AAAA | 默认 | 2001:db8::10 |
www如果已经是 CNAME,就不要再加 AAAA;CNAME 和 A/AAAA 不能在同一主机共存。需要双栈时,www也改用 A + AAAA。
二、常见子域规划
| 用途 | 主机记录 | 类型 | 记录值 |
|---|---|---|---|
| 博客 | blog | CNAME | example.com. 或博客平台给的域名 |
| API | api | A | API 服务器 IP |
| 管理后台 | admin | A | 后台服务器 IP(建议加访问限制) |
| 对象存储 | static | CNAME | 存储/CDN 提供的域名 |
| 邮件服务器 | mail | A | 邮件服务器 IP |
| 测试环境 | test | A | 测试服务器 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.
配置:
| 主机记录 | 类型 | 线路 | 记录值 |
|---|---|---|---|
www | CNAME | 默认 | 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 服务商。
- 根域名 301 跳转到
不要为了接 CDN 把根域名的 MX 记录删掉,否则邮箱会收不到信。
五、多台服务器轮询
同一主机、同一线路可以加多条 A 记录:
| 主机记录 | 类型 | 记录值 |
|---|---|---|
api | A | 203.0.113.11 |
api | A | 203.0.113.12 |
DNS 会轮询返回,起到最简单的负载均衡作用。
限制:
- 没有健康检查,一台挂了仍然会返回。
- 会话保持、数据库一致性要应用层自己处理。
- 需要权重/健康检查时,用负载均衡或付费 DNS 套餐。
六、URL 转发:301 跳转与隐性转发
显性 URL(301)
访问 old.example.com 自动跳到 https://new.example.com/,地址栏变成新地址。
| 主机记录 | 类型 | 记录值 |
|---|---|---|
@ | 显性 URL | https://new.example.com/ |
隐性 URL(iframe)
地址栏保持 old.example.com,内容显示目标站。目标站不允许 iframe 嵌套时会白屏。
限制
- 转发前域名只支持 HTTP,不支持 HTTPS 直接转发;需要 HTTPS 跳转时用 Nginx/CDN 配置 301。
- 前后域名都要完成工信部备案。
- 免费版通常只有 2 条 URL 转发。
- 记录值必须是完整 URL,不能是 IP 或 IP:端口。
七、CAA:限制谁能给你签证书
如果证书只用 Let's Encrypt:
| 主机记录 | 类型 | 记录值 |
|---|---|---|
@ | CAA | 0 issue "letsencrypt.org" |
@ | CAA | 0 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、浏览器各验证一遍
相关阅读: