通过访问日志看请求分布
最直接的方式是查看后端服务器的访问日志。比如你有三台服务器,分别部署在不同机器上,每台都开启了 Nginx 的 access.log。当你访问网站时,刷新几次页面,然后去每台服务器上查看最新的日志记录。
如果发现请求被分散到了不同的机器上,说明负载均衡已经在起作用。例如:
# 服务器1日志片段
192.168.1.100 - - [15/Apr/2025:10:01:01 +0000] "GET / HTTP/1.1" 200 1234
# 服务器2日志片段
192.168.1.101 - - [15/Apr/2025:10:01:03 +0000] "GET / HTTP/1.1" 200 1256可以看到时间接近但来源 IP 不同,说明请求确实打到了不同节点。
利用自定义响应头标识服务器
可以在每台后端服务器返回的 HTTP 头中加入一个标识字段,比如 X-Server-ID,值设为 server-01、server-02 这样的编号。
Nginx 配置示例:
location / {
add_header X-Server-ID server-01;
proxy_pass http://backend;
}然后用浏览器开发者工具或 curl 命令反复请求:
curl -I http://your-balancer-domain.com多执行几次,观察 X-Server-ID 的值是否在变化。如果有时是 server-01,有时是 server-02,那就说明流量正在被轮询分配。
模拟高并发测试分流效果
单靠手动刷新看不出太多细节,可以用工具模拟多个并发请求。比如使用 ab(Apache Bench)命令:
ab -n 100 -c 10 http://your-balancer-domain.com/这会发起 100 次请求,每次 10 个并发。结合前面提到的日志或响应头方式,分析这些请求是否均匀落到各个节点上。如果某台服务器完全没收到请求,那可能是配置出问题了。
检查会话保持是否干扰判断
有些负载均衡策略启用了会话保持(Session Persistence),比如基于 cookie 或源 IP 绑定。这种情况下,同一个用户连续刷新可能总是打到同一台服务器,容易误判为负载没生效。
可以换不同设备、不同网络环境(比如手机热点和家里的宽带)去访问,或者清除 cookie 后重试。也可以临时关闭会话保持功能做测试。
使用监控工具实时观察流量
如果你用了云服务商的负载均衡器,比如阿里云 SLB、腾讯云 CLB,它们自带监控面板。可以直接看到每台后端实例的入流量、请求数、连接数等指标。
打开控制台,发起一些访问操作,观察图表是否有波动。正常情况应该是各节点都有数据上升,而不是只有一台“忙得要死”,其他“闲得发慌”。
本地部署的话,配合 Prometheus + Grafana 收集 Nginx 或应用服务的请求指标,也能实现类似可视化效果。