负载均衡实战:用 Nginx 搭建高可用流量分发架构

做过高并发项目的运维或开发都清楚,单台服务器扛流量很容易在高峰期卡顿、宕机,只靠升级配置治标不治本。想让服务稳定、响应快、能扩容,负载均衡是绕不开的核心方案。本文结合实际部署经验,用 Nginx 手把手教你在多台 VPS 上搭建负载均衡,把流量均匀分到后端节点,兼顾可用性与扩展性。

一、负载均衡到底是什么?

简单说,负载均衡器就是流量调度员,放在所有后端服务器前面,按你设定的规则把用户请求分发到不同节点。
它的核心价值有三点:
  1. 性能更稳:流量分散开,没有单台机器被压垮,高峰期响应也不会忽快忽慢。
  2. 高可用:某台节点挂了或要维护,负载均衡器自动剔除,业务不中断。
  3. 易扩容:加机器就能加算力,不用重构架构,水平扩展很方便。

负载均衡实战:用 Nginx 搭建高可用流量分发架构

二、流量怎么分?常用算法一次讲清

负载均衡不是随机转发,而是靠算法决策,分为静态动态两大类,实际部署按需选就行。

静态算法(按固定规则分发)

  • 轮询:请求按顺序轮流给每台节点,配置最简单,适合节点性能差不多的场景。
  • 加权轮询:性能好的节点权重设高,分到更多流量,适合机器配置不一的集群。
  • IP 哈希:同一个 IP 固定访问同一台节点,能保留会话状态,适合需要登录态的业务。

动态算法(按实时状态分发)

  • 最少连接:把请求分给当前连接数最少的节点,对处理时长差异大的请求更友好,避免某台机器堆积任务。

三、Nginx 负载均衡完整部署步骤(可直接照抄)

我们用 Nginx 做软件负载均衡,成本低、配置灵活,中小流量场景完全够用,步骤都是实测可落地的。

准备工作

至少准备 3 台 VPS:2 台做后端业务节点,1 台专门做负载均衡,所有机器系统保持一致,建议用 Ubuntu/Debian。

步骤 1:部署后端业务节点

在 2 台后端 VPS 上装好应用,保证代码、环境、端口完全一致,确保单独访问每台都能正常响应,这是负载均衡生效的基础。

步骤 2:搭建负载均衡服务器

新开 1 台 VPS,只做流量转发,不跑业务,避免资源争抢。

步骤 3:安装 Nginx

执行下面两条命令,快速装好 Nginx:
sudo apt update
sudo apt install nginx

步骤 4:核心配置(反向代理 + 负载均衡)

编辑 Nginx 配置文件,定义后端节点池:
nginx
upstream backend {
    server 后端节点1IP;
    server 后端节点2IP;
}
server {
    listen 80;
    location / {
        proxy_pass http://backend;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}
backend里的 IP 换成你自己的 VPS 地址,这一步就把所有 80 端口请求转发到后端集群。

步骤 5:校验配置并重启

先测试配置有没有语法错误,再重载生效:
sudo nginx -t
sudo nginx -s reload
看到test is successful就说明配置没问题。

步骤 6:域名解析指向负载均衡器

把业务域名的 A 记录解析到负载均衡 VPS 的公网 IP,用户访问域名就会走负载均衡分发流量。

四、生产环境必加的 3 个优化配置

基础配置能用,但上线要加健壮性优化,这都是踩坑总结的要点。

1. 健康检查(自动剔除故障节点)

给每个后端节点加失败检查,连续失败 3 次、30 秒内不再转发,避免把流量导给挂掉的机器:
nginx
upstream backend {
    server 节点1IP max_fails=3 fail_timeout=30s;
    server 节点2IP max_fails=3 fail_timeout=30s;
}

2. 会话保持(登录不掉线)

电商、后台管理等需要登录态的业务,用ip_hash保证用户一直访问同一台节点,会话不丢失:
nginx
upstream backend {
    ip_hash;
    server 节点1IP;
    server 节点2IP;
}

3. HTTPS 加密(SSL 卸载)

把证书放在负载均衡器,统一处理 HTTPS,后端只跑 HTTP,简化维护,用 Certbot 一键配置:
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d 你的域名
执行后自动生成 SSL 配置,重启 Nginx 即可启用 HTTPS。

五、横向扩容:加节点不中断服务

业务涨了要加机器,不用改复杂架构:
  1. 新开 VPS,部署和后端一致的应用;
  2. 把新节点 IP 加到 Nginx 的upstream块;
  3. 执行nginx -s reload,新机器立刻开始承接流量,全程不影响在线用户。

原创文章,作者:余初云,如若转载,请注明出处:https://blog.jidcy.com/jsjc/2428.html

Like (1)
Previous 2026年4月14日 上午11:06
Next 2026年4月15日 上午11:07

相关推荐