Nginx负载均衡从零开始配置教程

为什么需要 Nginx 负载均衡

当一台服务器扛不住高并发,或者想实现高可用,Nginx 负载均衡 就是最常用的方案。
它可以把用户请求均匀分发给后端多台真实服务器,既提升性能又避免单点故障。
本文会带零基础的朋友一步步完成配置。

配置前需要准备的几样东西

  • 一台已经安装好 Nginx 的服务器(操作系统不限,本文以 CentOS 7 为例)
  • 至少两台后端应用服务器(可以是本机不同端口,例如 8081 和 8082)
  • 后端服务已正常启动并能独立访问(比如用 curl http://127.0.0.1:8081 能返回内容)

如果没有多台机器,完全可以在同一台服务器上启动两个不同端口的 web 服务来做测试。

手把手配置 Nginx 负载均衡

1. 找到并编辑 Nginx 主配置文件

默认路径是 /etc/nginx/nginx.conf,也可以用 nginx -t 查看当前使用的配置路径。
备份原文件后,用 vim 或 nano 打开:

cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
vim /etc/nginx/nginx.conf

2. 在 http 块内添加 upstream 定义

http { } 大括号内部,server 块之前,添加如下内容:

upstream my_backend {
    server 127.0.0.1:8081 weight=1;
    server 127.0.0.1:8082 weight=1;
    # 这里可以继续添加更多后端
}

upstream 后面的名字(这里是 my_backend)可以自己取,后续 proxy_pass 里会引用。
每个 server 后面就是后端地址和端口,weight 表示权重,数值越大分到的请求越多。

3. 修改 server 块中的 location 指向 upstream

找到你实际提供服务的 server 块,通常默认的 server 监听 80 端口。
把原来的 proxy_passroot 改成下面这样:

location / {
    proxy_pass http://my_backend;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

这里用 proxy_pass http://my_backend 把请求转发到刚才定义的 upstream 组,Nginx 会自动按轮询(默认算法)或权重分发。

4. 检查配置并重启 Nginx

nginx -t   # 测试语法是否正确
systemctl restart nginx   # CentOS 7 重启命令
# 如果是其他系统,用 nginx -s reload 也行

如果 nginx -t 提示 syntax is oktest is successful,说明配置没问题。

配置中的高频问题与避坑

  • 后端服务器没启动502 Bad Gateway 最常见原因。务必先用 curl 确认后端地址能直接访问。
  • upstream 名字拼写错误proxy_pass 后面的地址必须和 upstream 名称完全一致,包括大小写。
  • 防火墙未放行端口:检查后端端口是否开放,用 telnet 127.0.0.1 8081 测试连通性。
  • 日志定位问题:查看 /var/log/nginx/error.log,错误信息会直接给出线索。

如果想让某一台服务器承担更多请求,可以调整 weight 值,例如 weight=3
如果需要会话保持(session sticky),可以使用 ip_hash 指令,在 upstream 块内添加一行:

upstream my_backend {
    ip_hash;
    server 127.0.0.1:8081;
    server 127.0.0.1:8082;
}

如何验证 Nginx 负载均衡生效

最简单的方法是准备两台后端服务器,返回不同的内容(比如在首页分别写入 "Server A" 和 "Server B")。
然后用浏览器或 curl 多次访问 Nginx 代理端口:

for i in {1..10}; do curl http://你的服务器IP; done

如果看到不同服务器的响应交替出现,说明 Nginx 负载均衡配置成功。
也可以用 curl -I 查看响应头里的 Server 字段来确认。

Nginx 负载均衡 配置并不复杂,关键是理解 upstream 和 proxy_pass 的配合。
按照本文的步骤一步步操作,即使零基础也能顺利跑起来。
如果遇到异常,优先检查后端服务状态和 Nginx 错误日志,大多数问题都能快速定位。

分享到:
上一篇
Nginx反向代理配置教程:零基础也能轻松上手
下一篇
Nginx缓存配置从零开始:加速网站访问的实操指南
1
系统公告

高考专属福利来袭|凭准考证免费领香港 CN2 云服务器

值高考落幕之际,泽御云开启考生专属回馈 + 产品限时特惠双重活动,助力学子暑期学习建站 高考 考生专属福利 全体应届高考生,凭高考准考证即可免费申领【香港 CN2 轻量云服务器,4 核 4G AMD 处理器】,免费使用周期 30 天,可用于搭建个人站点、编程实操、技术实训,祝各位考生金榜题名,前程似锦! 泽御云资质齐全合规自营机房,线路覆盖香港 CN2、国内 BGP、内蒙电信、美国精品线路,售后全天候技术支持。 官方网站:www.zeyuyun.com,活动限时有效,优惠逾期不再保留。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意