Nginx默认轮询是搭建本地微服务集群最轻量、最快上手的负载均衡方式,只需多个服务实例监听不同端口并配置upstream,即可实现请求轮流分发,适合开发调试和学习微服务通信。

用 Nginx 默认轮询(round-robin)做负载均衡,是搭建本地微服务集群最轻量、最快上手的方式。它不需要额外插件或复杂配置,只要多个服务实例监听不同端口,Nginx 就能自动把请求轮流分发过去——非常适合开发调试和学习微服务通信机制。
准备两个(或以上)本地服务实例
微服务集群的前提是有多个可访问的服务副本。比如你有一个用户服务,可以启动两份,分别监听 8081 和 8082:
- 服务 A:http://localhost:8081/api/user
- 服务 B:http://localhost:8082/api/user
确保它们返回相同结构的响应(例如都返回 {"id":1,"name":"Alice"}),方便验证轮询是否生效。可以用 Node.js、Python Flask 或 Spring Boot 快速起一个最小服务,重点是端口不冲突、接口路径一致。
配置 Nginx 使用 upstream + 默认轮询
编辑 /etc/nginx/conf.d/microservice.conf(macOS/Linux)或 conf/nginx.conf(Windows),加入以下配置:
upstream user-service {
server localhost:8081;
server localhost:8082;
}
server {
listen 8080;
location /api/ {
proxy_pass http://user-service;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
这里没有写 weight、ip_hash 等参数,Nginx 就会启用默认的轮询策略:请求依次发给每个 server,循环往复。重启 Nginx 后,访问 http://localhost:8080/api/user,就能看到响应交替来自 8081 和 8082。
验证轮询效果与简单调优
用 curl 或浏览器快速刷新几次,配合服务端日志(如每收到请求就打印端口号),就能直观看到流量被均匀分发。若想观察更清晰,可在每个服务响应头中加入标识:
- 8081 返回
X-Service: user-v1 - 8082 返回
X-Service: user-v2
再用 curl -I http://localhost:8080/api/user 查看响应头变化。如果希望某实例承担更多流量,只需加 weight=2,例如:server localhost:8081 weight=2; —— 这属于后续扩展,初始阶段保持默认即可。
进阶提示:健康检查与平滑扩缩容
默认轮询不会自动剔除宕机服务。开发阶段可手动停掉一个端口,观察 Nginx 是否报 502;生产环境建议搭配 max_fails 和 fail_timeout 做基础健康探测:
upstream user-service {
server localhost:8081 max_fails=2 fail_timeout=10s;
server localhost:8082 max_fails=2 fail_timeout=10s;
}
新实例启动后,Nginx 会自动纳入轮询队列;下线时,直接关闭进程即可,Nginx 在下次失败后暂停转发,无需 reload 配置。


















