目标:不需要任何负载均衡硬件,只改几条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为例(其他平台操作类似):

操作步骤:

  1. 登录 阿里云控制台 → 进入云解析DNS
  2. 找到你的域名 myapp.com,点击解析设置
  3. 点击添加记录,填写:

第一条记录(服务器A)

字段
记录类型 A
主机记录 www
记录值 1.1.1.1
TTL 600(10分钟,后面会解释为什么)

第二条记录(服务器B)

字段
记录类型 A
主机记录 www
记录值 2.2.2.2
TTL 600
  1. 点击确认,保存。

就这么简单。你已经完成了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),输入:

nslookup www.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倍的流量了。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐