Nginx 反向代理 + 6 种负载均衡策略

一、前言

Nginx 是目前最常用的高性能反向代理、负载均衡服务器,常用于微服务集群、Web 项目集群分发。本文整理 Nginx 反向代理 + 6 种负载均衡策略 完整配置,复制即可使用,适合生产环境直接部署。

二、Nginx 反向代理通用基础配置

1、反向代理必备请求头

做负载均衡反向代理,必须携带以下 header,否则后端拿不到真实 IP 和域名。

nginx

复制代码
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_connect_timeout 60s;
proxy_read_timeout 60s;
proxy_send_timeout 60s;

2、基础整体架构

  • upstream:定义后端服务集群
  • server:监听端口,做反向代理转发

三、6 种 Nginx 负载均衡策略 完整配置

策略 1:默认轮询(Round Robin)

特点:默认规则,请求按顺序依次分发,平均分配,无会话保持。

nginx

复制代码
upstream backend_server {
    server 192.168.1.10:8080;
    server 192.168.1.11:8080;
    server 192.168.1.12:8080;
}

server {
    listen 80;
    server_name lb.test.com;

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

策略 2:权重负载均衡 weight

特点:权重值越高,被分配的请求越多;适合后端服务器配置性能不一样的场景。

nginx

复制代码
upstream backend_server {
    server 192.168.1.10:8080 weight=5;
    server 192.168.1.11:8080 weight=3;
    server 192.168.1.12:8080 weight=2;
}

策略 3:IP 哈希 ip_hash

特点 :同一客户端 IP 永远分配到同一台后端节点,解决会话丢失、登录失效问题

nginx

复制代码
upstream backend_server {
    ip_hash;
    server 192.168.1.10:8080;
    server 192.168.1.11:8080;
    server 192.168.1.12:8080;
}

策略 4:最少连接 least_conn

特点 :自动把请求分发到当前连接数最少的服务器,适合后端处理速度参差不齐的场景。

nginx

复制代码
upstream backend_server {
    least_conn;
    server 192.168.1.10:8080;
    server 192.168.1.11:8080;
    server 192.168.1.12:8080;
}

策略 5:URL 哈希 hash $request_uri

特点:根据请求 URL 做哈希,相同 URL 固定访问同一节点,适合静态资源缓存、文件服务。

nginx

复制代码
upstream backend_server {
    hash $request_uri;
    hash_method crc32;
    server 192.168.1.10:8080;
    server 192.168.1.11:8080;
}

策略 6:Fair 智能负载均衡(第三方模块)

特点 :根据后端响应时间 自动分配,响应越快分到的请求越多;需要额外安装 ngx_http_upstream_fair_module 模块。

nginx

复制代码
upstream backend_server {
    fair;
    server 192.168.1.10:8080;
    server 192.168.1.11:8080;
}

四、upstream 常用参数详解

nginx

复制代码
# 标记为备用节点,主节点挂了才启用
server 192.168.1.12:8080 backup;

# 标记节点永久下线
server 192.168.1.10:8080 down;

# 健康检查:最大失败3次,30秒内不再转发
server 192.168.1.10:8080 max_fails=3 fail_timeout=30s;

五、Nginx 常用命令

bash

运行

复制代码
# 检查配置语法
nginx -t

# 重载配置(不重启服务)
nginx -s reload

# 启动、停止、重启
systemctl start nginx
systemctl stop nginx
systemctl restart nginx

# 查看日志
tail -f /var/log/nginx/access.log
tail -f /var/log/nginx/error.log

六、总结

  1. 轮询:默认平均分配
  2. 权重:配置性能不同用
  3. ip_hash:需要会话保持、登录状态
  4. least_conn:后端处理速度不一致
  5. url_hash:静态资源、缓存服务
  6. fair:按响应时间智能调度(需第三方模块)
相关推荐
ping某5 小时前
为什么 Nginx 明明监听了 80,转发后端时却用了 4xxxx 端口?
后端·nginx
大树882 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠2 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质2 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工2 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智2 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_2 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉2 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造
AC赳赳老秦2 天前
用 OpenClaw 搭建服务器故障应急响应系统,自动处理 80% 常见运维故障
android·运维·服务器·python·rxjava·deepseek·openclaw
java_cj2 天前
深入kube-apiserver认证机制:从Bearer Token到mTLS的完整认证链解析
linux·运维·服务器·云原生·容器·kubernetes