3. 域名与DNS配置:从购买到CDN加速

域名和DNS,说白了就是用户访问你服务的“门牌号”和“导航系统”。很多新手觉得这步简单,随便配配就行。但我见过太多线上事故,都是因为DNS配置不当导致的。今天我把这块的坑和经验都摊开讲。

3.1 域名购买:第一道选择题

选域名注册商,我个人习惯看三点:价格、稳定性、解析速度。别贪便宜去小平台买,我有个朋友在某不知名平台买了域名,结果要转出时被卡了半个月,业务直接停摆。

我的建议: 优先选阿里云、腾讯云、AWS Route53 这类大厂。虽然贵点,但省心。域名后缀推荐 .com、.cn、.net,别用那些花里胡哨的 .xyz、.top,容易被浏览器标记为可疑站点。

3.2 DNS解析原理:到底发生了什么?

用户输入域名,浏览器怎么找到你的服务器?这个过程叫DNS解析。我画了张图,你看完就明白了。

DNS 解析流程 用户浏览器 本地DNS缓存 根DNS服务器 顶级域名服务器 权威DNS服务器 服务器IP地址 ① 查询域名 ② 未命中 ③ 返回顶级域 ④ 返回权威域 ⑤ 返回IP ⑥ 返回IP 整个过程通常在毫秒级完成,但每多一次递归查询,延迟就增加一点

流程其实不复杂:浏览器先查本地缓存,没命中就去问根DNS,根DNS告诉它找谁,一路递归下去,最后拿到IP。嗯,这里要注意——DNS解析是有缓存的,TTL(生存时间)决定了缓存多久。

核心概念:

  • 递归查询: 客户端只发一次请求,DNS服务器帮你跑完整个链路
  • 迭代查询: 客户端自己逐级去问,每次只得到一个“下一级”的指引
  • TTL: 缓存时间,单位秒。生产环境建议 60-600 秒,别设太长

3.3 A记录与CNAME:两种核心记录类型

配置DNS时,最常用的是A记录和CNAME。我刚开始也搞混过,后来总结了一句话:A记录指向IP,CNAME指向域名。

记录类型 作用 示例 适用场景
A记录 域名 → IPv4地址 api.example.com → 123.123.123.123 服务器IP固定时
AAAA记录 域名 → IPv6地址 api.example.com → 2001:db8::1 支持IPv6的服务器
CNAME 域名 → 另一个域名 www.example.com → example.com CDN、负载均衡、多域名指向同一服务
MX记录 域名 → 邮件服务器 example.com → mail.example.com 企业邮箱配置

避坑指南: 我曾经犯过一个低级错误——把根域名(example.com)配成了CNAME。但根域名必须用A记录,因为CNAME不能和MX、NS等其他记录共存。结果邮件全收不到,排查了一下午才发现。

规则很简单:根域名用A记录,子域名可以用CNAME。

3.4 CDN加速基础:让用户离你更近

CDN(内容分发网络)说白了就是把你的静态资源(图片、CSS、JS)缓存到全球各地的节点上。用户访问时,从最近的节点拿数据,速度自然快。

我参与过一个电商项目,没上CDN前,海外用户加载首页要8秒。上了CDN后,直接降到1.2秒。你想想看,这体验差距有多大。

CDN的核心原理

CDN 加速原理 源站服务器 CDN中心节点 边缘节点(美西) 边缘节点(欧洲) 边缘节点(亚太) 终端用户 回源拉取 同步缓存 就近访问 用户请求 → DNS解析到最近边缘节点 → 节点有缓存直接返回 → 无缓存则回源拉取 整个过程对用户透明,延迟从几百ms降到几十ms

CDN配置步骤

  1. 选择CDN服务商: 阿里云CDN、腾讯云CDN、Cloudflare、Akamai 等。国内业务选国内厂商,海外业务选Cloudflare或Akamai。
  2. 添加加速域名: 在CDN控制台添加你的域名,比如 static.example.com。
  3. 配置CNAME: 把加速域名指向CDN提供的CNAME地址。这一步很多人会忘,我提醒一下——配完CNAME后,原域名的A记录要删掉,否则解析会冲突。
  4. 设置缓存规则: 静态资源(图片、CSS、JS)缓存时间长一点,动态API不要缓存。
  5. HTTPS配置: 上传SSL证书,开启强制HTTPS跳转。

我的经验: 配置CDN后,一定要测试回源是否正常。我曾经遇到过CDN节点缓存了旧版本文件,用户死活刷不出新页面。后来我养成了一个习惯——每次发布前,先在CDN控制台手动刷新缓存。

3.5 常见避坑清单

这部分是我这些年踩过的坑,列出来给你参考:

问题 现象 解决方案
TTL设置过长 域名切换IP后,用户长时间无法访问新服务器 切换前将TTL改为60秒,切换后24小时再改回
CNAME与MX冲突 邮件发送失败 根域名用A记录,子域名用CNAME
CDN缓存未刷新 用户看到旧版本页面 发布后手动刷新CDN缓存,或设置版本号参数
DNS解析超时 页面加载慢,部分用户无法访问 配置多个DNS服务器,开启DNS预解析
HTTPS证书未配置 浏览器提示不安全 使用Let's Encrypt免费证书,或云厂商提供的证书

最后提醒一句: DNS配置生效不是即时的。全球DNS缓存刷新需要时间,最长可能48小时。所以做域名迁移或IP切换时,一定要留出缓冲期。我见过有人半夜切DNS,结果第二天早上业务全挂——因为缓存还没刷新。