Linux怎么配置Nginx负载均衡_Linux如何实现多服务器分流【方法】

浅辰姑娘_8779

浅辰姑娘_8779

2026-03-19

723人浏览

原创

upstream 必须定义在 http 块内(如 nginx.conf 或 conf.d/*.conf),命名仅支持字母、数字、短横线,server 行末需加分号;proxy_pass 路径斜杠影响 uri 截断;需手动配置 max_fails、fail_timeout、proxy_next_upstream 实现基础健康检查与重试;权重和 hash 算法需按实际场景合理选用。

linux怎么配置nginx负载均衡_linux如何实现多服务器分流【方法】

nginx upstream 配置写在哪、怎么写才生效

配置 Nginx 负载均衡,核心是 upstream 块,但它不能随便放——必须在 http 块里定义,不能放在 server 或 location 里,否则启动直接报错:unknown directive "upstream"。

常见错误是把 upstream 塞进某个 server 段里,以为“就近定义”更清晰,结果 nginx -t 直接失败。

  • upstream 必须位于 http { ... } 范围内(通常在 /etc/nginx/nginx.conf 或 /etc/nginx/conf.d/*.conf 中)
  • 名字不能含下划线(my_backend ❌),只支持字母、数字、短横线(my-backend ✅)
  • 每个 server 行后面别漏分号,少一个就整个 upstream 解析失败
  • 如果用域名(如 backend1.example.com),Nginx 启动时只解析一次,DNS 变更后不会自动刷新(需加 resolve 参数或用 resolver 配合)
http {
    upstream api-cluster {
        server 192.168.1.10:8080;
        server 192.168.1.11:8080;
        server 192.168.1.12:8080;
    }

    server {
        location /api/ {
            proxy_pass http://api-cluster;
        }
    }
}

proxy_pass 指向 upstream 时路径处理容易出错

用 proxy_pass 转发到 upstream,路径是否带结尾斜杠,直接影响后端收到的 URI——这是最常导致 404 或静态资源加载失败的原因。

比如请求 /api/v1/users,若配置为 proxy_pass http://api-cluster/;(结尾有 /),Nginx 会把 /api/ 截掉,后端实际收到 /v1/users;若写成 proxy_pass http://api-cluster;(无斜杠),则原样转发,后端收到完整路径 /api/v1/users。

  • 后端服务根路径是 / → 用 proxy_pass http://upstream/;(推荐,避免路径重复)
  • 后端服务挂载在子路径(如 Spring Boot 的 server.servlet.context-path=/svc)→ 用 proxy_pass http://upstream/svc/;
  • 绝对不要混用:比如 location /api/ { proxy_pass http://upstream/api/; },会导致路径变成 /api/api/...

健康检查不是默认开启的,得手动配 keepalive 和 retry

Nginx 开源版不提供主动健康检查(如定期发 HEAD 请求探测),所谓“故障转移”仅靠连接失败触发,且默认不重试——这意味着某台后端挂了,用户第一次请求大概率直接 502,第二次才可能落到正常机器上。

要让失效感知快一点、请求更稳,得靠两个参数配合:

  • max_fails=3 fail_timeout=30s:连续 3 次失败(连接超时或 5xx)就标记该节点不可用 30 秒
  • proxy_next_upstream error timeout http_502 http_503:在 location 里启用,遇到这些情况才尝试下一个 upstream server
  • keepalive 32(在 upstream 块里):复用连接,减少握手开销;但必须配合 proxy_http_version 1.1 和 proxy_set_header Connection '' 才生效

没配 proxy_next_upstream,哪怕 upstream 里写了 10 台机器,只要第一台连不上,就直接 502,根本不会往下试。

权重和调度算法选错会导致流量倾斜严重

默认轮询(round-robin)假设所有后端性能一致。现实中机器配置不同、部署了不同版本服务、甚至 JVM GC 周期都会影响吞吐——这时硬套默认策略,强机器可能被打满,弱机器空转。

  • 用 weight=2 给高性能机器加权(如 server 192.168.1.10:8080 weight=2;),注意权重是相对值,不是百分比
  • ip_hash 能做简单会话保持,但不适用于有 CDN 或 NAT 的场景(所有用户 IP 可能被压成同一个出口 IP)
  • hash $request_uri consistent; 适合缓存友好型服务,但对动态接口可能加剧热点(比如某条慢查询 URI 被反复哈希到同一台)
  • 开源版没有 least_conn(最少连接数)以外的高级算法,别指望类似 “响应时间加权” 这种功能,得上 Plus 版或换 OpenResty

真正难的是监控反馈闭环:光配了 weight 不行,得看 nginx stub_status 或日志里的 $upstream_addr,确认流量确实按预期分过去了——否则权重只是自我安慰。

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
spring框架介绍
spring框架介绍

本专题整合了spring框架相关内容,想了解更多详细内容,请阅读专题下面的文章。

2025.08.06

2331

22

Java Spring Security 与认证授权
Java Spring Security 与认证授权

本专题系统讲解 Java Spring Security 框架在认证与授权中的应用,涵盖用户身份验证、权限控制、JWT与OAuth2实现、跨站请求伪造(CSRF)防护、会话管理与安全漏洞防范。通过实际项目案例,帮助学习者掌握如何 使用 Spring Security 实现高安全性认证与授权机制,提升 Web 应用的安全性与用户数据保护。

2026.01.26

437

25

nginx 重启
nginx 重启

nginx重启对于网站的运维来说是非常重要的,根据不同的需求,可以选择简单重启、平滑重启或定时重启等方式。本专题为大家提供nginx重启的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.27

383

5

nginx 配置详解
nginx 配置详解

Nginx的配置是指设置和调整Nginx服务器的行为和功能的过程。通过配置文件,可以定义虚拟主机、HTTP请求处理、反向代理、缓存和负载均衡等功能。Nginx的配置语法简洁而强大,允许管理员根据自己的需要进行灵活的调整。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.04

3227

6

nginx配置详解
nginx配置详解

NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。本专题为大家提供nginx配置相关的文章,大家可以免费学习。

2023.08.04

5885

6

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

561

5

nginx报404怎么解决
nginx报404怎么解决

当访问 nginx 网页服务器时遇到 404 错误,表明服务器无法找到请求资源,可以通过以下步骤解决:1. 检查文件是否存在且路径正确;2. 检查文件权限并更改为 644 或 755;3. 检查 nginx 配置,确保根目录设置正确、没有冲突配置等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.07.09

1476

5

Nginx报404错误解决方法
Nginx报404错误解决方法

解决方法:只需要加上这段配置:try_files $uri $uri/ /index.html;即可。想了解更多Nginx的相关内容,可以阅读本专题下面的文章。

2024.08.07

3938

3

nginx部署php项目教程汇总
nginx部署php项目教程汇总

本专题整合了nginx部署php项目教程汇总,阅读专题下面的文章了解更多详细内容。

2026.01.13

122

12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.4万人学习