目标:不需要任何负载均衡硬件,只改几条DNS记录,就能让你的网站扛住更多访问。
第0步:你需要先懂这3个概念
在动手之前,只需理解3个东西:
| 概念 | 大白话解释 | 举个例子 |
|---|---|---|
| 域名 | 网站的名字,比如www.myapp.com | 你的门牌号 |
| IP地址 | 服务器的真实地址,比如1.1.1.1 | 你家的实际位置 |
| DNS解析 | 把域名翻译成IP的过程 | 查地图,找到你家在哪 |
DNS负载均衡的核心就一句话:
同一个域名,对应多个IP地址。DNS在翻译时,轮流返回不同的IP,把用户分散到不同服务器上。
第1步:准备工作
你需要:
- ✅ 一个域名(已购买,比如
myapp.com) - ✅ 至少2台服务器(可以是云服务器、VPS,哪怕是同一台机器的不同端口也行,但建议真实的2台)
- ✅ 能修改DNS记录的权限(域名管理后台)
假设你有2台服务器:
服务器A:1.1.1.1 服务器B:2.2.2.2第2步:修改DNS记录(核心操作)
以阿里云云解析DNS为例(其他平台操作类似):
操作步骤:
- 登录 阿里云控制台 → 进入云解析DNS
- 找到你的域名
myapp.com,点击解析设置 - 点击添加记录,填写:
第一条记录(服务器A):
| 字段 | 值 |
|---|---|
| 记录类型 | A |
| 主机记录 | www |
| 记录值 | 1.1.1.1 |
| TTL | 600(10分钟,后面会解释为什么) |
第二条记录(服务器B):
| 字段 | 值 |
|---|---|
| 记录类型 | A |
| 主机记录 | www |
| 记录值 | 2.2.2.2 |
| TTL | 600 |
- 点击确认,保存。
就这么简单。你已经完成了DNS负载均衡的配置。
第3步:理解刚才做了什么
现在你的DNS记录长这样:
www.myapp.com → 1.1.1.1 www.myapp.com → 2.2.2.2当用户在浏览器输入www.myapp.com时:
用户 → DNS服务器 → 收到两个IP → 轮流返回一个 → 用户连接对应服务器 ↓ 第一次 → 返回 1.1.1.1(服务器A) 第二次 → 返回 2.2.2.2(服务器B) 第三次 → 返回 1.1.1.1(服务器A) ... 循环往复这就是最基础的轮询(Round Robin)策略。
第4步:理解TTL——最容易踩的坑
TTL(Time To Live)决定DNS记录在别人电脑里缓存多久。
| TTL值 | 含义 | 影响 |
|---|---|---|
| 3600(1小时) | 缓存1小时 | 省DNS查询,但切换慢 |
| 600(10分钟) | 缓存10分钟 | 平衡,推荐入门使用 |
| 60(1分钟) | 缓存1分钟 | 切换快,但DNS查询多,增加延迟 |
🚨 重要:
如果你把服务器A关掉了,但TTL是1小时,那么在接下来1小时内,仍有用户会被导向已关停的服务器A。
入门建议:TTL设为60~600秒之间。
第5步:验证是否生效
打开终端(Windows用CMD或PowerShell,Mac用Terminal),输入:
nslookupwww.myapp.com多次执行,观察返回的IP是否在变化:
第1次:1.1.1.1 第2次:2.2.2.2 第3次:1.1.1.1 第4次:2.2.2.2✅ 如果IP在交替变化,恭喜你,DNS负载均衡已经生效了。
第6步:进阶——加权轮询(让强服务器多干活)
如果服务器A比服务器B强2倍,你可以设置权重:
| 记录类型 | 主机记录 | 记录值 | 权重 |
|---|---|---|---|
| A | www | 1.1.1.1 | 2 |
| A | www | 2.2.2.2 | 1 |
效果:每3个用户中,2个去服务器A,1个去服务器B。
⚠️ 注意:不是所有DNS服务商都支持权重。阿里云、Cloudflare支持,但部分免费DNS不支持。
第7步:常见问题排查
| 问题 | 原因 | 解决方法 |
|---|---|---|
| 多次nslookup返回同一个IP | 本地DNS缓存了结果 | 换个DNS查询:nslookup www.myapp.com 8.8.8.8 |
| 改了DNS记录但没生效 | TTL还没过期 | 等待TTL时间,或把TTL改小 |
| 一台服务器挂了还有用户访问 | DNS不知道它挂了 | 手动删除那条A记录,或使用支持健康检查的DNS服务 |
| 用户刷新后跳到另一台服务器 | DNS轮询,本来就会变 | 这是正常行为。如需固定,用Cookie或Session |
一张图总结整个流程
用户访问 www.myapp.com │ ▼ ┌─────────────┐ │ DNS 服务器 │ │ │ │ A记录: │ │ 1.1.1.1 ←─┤── 轮流返回 │ 2.2.2.2 ←─┘ └──────┬──────┘ │ ┌────────────┼────────────┐ ▼ ▼ 服务器A (1.1.1.1) 服务器B (2.2.2.2) 处理一半请求 处理另一半请求下一步学什么?
当你掌握了这些,可以继续探索:
| 方向 | 学什么 | 难度 |
|---|---|---|
| 健康检查 | 让DNS自动剔除挂掉的服务器 | ⭐⭐ |
| 地理位置路由 | 让北京用户连北京服务器,上海用户连上海服务器 | ⭐⭐⭐ |
| DNS + Nginx 组合 | DNS管跨机房,Nginx管单机房内分配 | ⭐⭐⭐ |
| Cloudflare / Route 53 | 用专业DNS服务替代自建DNS | ⭐⭐ |
现在,去改你的DNS记录吧。10分钟后,你的网站就能扛住2倍的流量了。