nginx:负载均衡

目录

一、最基础负载均衡(轮询)

[二、4 种常用负载均衡策略](#二、4 种常用负载均衡策略)

1)权重轮询(性能不同机器用)

[2)IP 哈希(同一个 IP 永远访问同一台](#2)IP 哈希(同一个 IP 永远访问同一台)

3)最少连接(least_conn)

[4)URL 哈希(同一个接口 / 资源固定一台)](#4)URL 哈希(同一个接口 / 资源固定一台))

三、高可用配置(宕机自动剔除)


一、最基础负载均衡(轮询)

在 nginx.conf 的 http 块内 加一个 upstream,然后在 location 里 proxy_pass 指向它。

XML 复制代码
http {

    # 1. 定义负载均衡池(名字随便起,比如 backend_servers)
    upstream backend_servers {
        server 127.0.0.1:8080;  # 后端服务1
        server 127.0.0.1:8081;  # 后端服务2
        server 127.0.0.1:8082;  # 后端服务3
    }

    server {
        listen 80;
        server_name localhost;

        location /api/ {
            # 2. 代理到 upstream 名字
            proxy_pass http://backend_servers;

            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_set_header X-Forwarded-Proto $scheme;
        }
    }
}

默认策略:**轮询(round-robin)**请求依次分给:8080 → 8081 → 8082 → 8080...

二、4 种常用负载均衡策略

1)权重轮询(性能不同机器用)
XML 复制代码
upstream backend_servers {
    server 127.0.0.1:8080 weight=3;  # 访问3次
    server 127.0.0.1:8081 weight=2;  # 访问2次
    server 127.0.0.1:8082 weight=1;  # 访问1次
}
2)IP 哈希(同一个 IP 永远访问同一台

适合:登录会话、Session 不共享

XML 复制代码
upstream backend_servers {
    ip_hash;
    server 127.0.0.1:8080;
    server 127.0.0.1:8081;
}
3)最少连接(least_conn)

分给连接数最少的机器

XML 复制代码
upstream backend_servers {
    least_conn;
    server 127.0.0.1:8080;
    server 127.0.0.1:8081;
}
4)URL 哈希(同一个接口 / 资源固定一台)
XML 复制代码
upstream backend_servers {
    hash $request_uri;
    server 127.0.0.1:8080;
    server 127.0.0.1:8081;
}

三、高可用配置(宕机自动剔除)

加上 max_fails、fail_timeout,机器挂了自动踢走,恢复后自动加回:

XML 复制代码
upstream backend_servers {
    server 127.0.0.1:8080 max_fails=3 fail_timeout=30s;
    server 127.0.0.1:8081 max_fails=3 fail_timeout=30s;
    server 127.0.0.1:8082 backup;  # 备用机,其他全挂才启用
}

参考文献:豆包

相关推荐
打工仔折腾 AI1 天前
在 Ubuntu ARM64 部署 Q1 V3.0 MuJoCo 模型:加载、单步推理与执行器响应解析
linux·运维·人工智能·python·深度学习·ubuntu·性能优化
yyuuuzz1 天前
跨境站点日志时区混乱的排查记录
运维·服务器·网络·云计算·aws·1024程序员节
‎ദ്ദിᵔ.˛.ᵔ₎1 天前
关于Linux 线程局部存储的认识
linux·运维
GlobalInfo1 天前
全球及中国风电叶片检测机器人行业研究报告(2026版):市场现状、行业前景与占有率分析
运维·网络·人工智能·机器人
隔窗听雨眠1 天前
KingbaseES平替全链路实践:从迁移评估到可持续运维
运维
skywalk81631 天前
登到192.168.1.5那台机器,看看今天白天,大约从早晨到晚上,都卡住了。看看因为什么卡住,为什么卡住而没有杀死那个导致卡死的进程,为什么
运维·系统·freebsd
运维行者_1 天前
网络监控工具怎么选?从设备监控到智能运维的能力清单
运维·服务器·开发语言·网络·人工智能·支持向量机·php
晚风吹北巷1 天前
Linux复习篇(自用)
linux·运维·服务器·1024程序员节
风哥2号1 天前
数据库教程FGMT69:PostgreSQL运维诊断与监控分析
运维·数据库·postgresql
Harrison Ben1 天前
(原创)SAP FI自动入账奥义:FBKP FBKA FBKF
运维·sap·sap fico·sap运维·sap 实施