参考资料

  1. nginx重启服务命令
  2. nginx是干嘛用的 白话文解释
  3. nginx重启命令reload
  4. Nginx伪流媒体服务器搭建详细说明以及案例
  5. nginx的作用NIXGIX
  6. nginx配置文件在哪里
  7. nginx负载均衡和反向代理
  8. nginx启动命令Linux

nginx负载均衡的指令有哪些

nginx负载均衡的指令有哪些

Nginx 作为高性能反向代理服务器,负载均衡是其核心能力之一。合理配置负载均衡可以提升服务吞吐量、实现高可用。本文介绍 Nginx 中与负载均衡相关的核心指令,并给出可直接使用的配置示例。 #### 一、 upstream 块:定义后端服务器组 负载均衡配置主要写在 `http` 上下文内的 `upstream` 块中。`upstream` 指令用于定义一组后端服务器,并为该组命名,后续通过 `proxy_pass` 引用。 nginx http { upstream backend { server 192.168.1.10:8080 weight=3; server 192.168.1.11:8080 weight=1; server 192.168.1.12:8080 backup; } server { listen 80; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } } #### 二、 server 指令:定义后端节点 `server` 指令位于 `upstream` 块内,用于指定后端服务器的地址和参数。常用参数包括:

  • `weight`:设置权重,默认值为 1。权重越高,被分配的请求越多。
  • `max_fails`:允许请求失败的次数,超过该次数后认为节点不可用。
  • `fail_timeout`:统计失败次数的时间窗口,同时在该时间窗口内停止将请求发送到不可用节点。默认值为 10 秒。
  • `backup`:将该节点标记为备份节点,当主节点全部不可用时才启用。
  • `down`:标记为永久不可用,常用于维护时保留配置。

nginx upstream backend { server 10.0.0.1:8080 weight=5 max_fails=3 fail_timeout=30s; server 10.0.0.2:8080 weight=5 max_fails=3 fail_timeout=30s; server 10.0.0.3:8080 backup; } #### 三、 负载均衡算法相关的指令 Nginx 默认提供多种负载均衡策略,通过以下指令或参数实现。 1. round-robin(轮询) 这是 Nginx 默认算法,无需额外指令。每个请求按时间顺序逐一分配到不同后端节点。当需要按权重分配时,配合 `server` 指令的 `weight` 参数即可。 2. least_conn(最少连接) 将请求分配给当前活跃连接数最少的节点,适用于请求处理时间差异较大的场景。 nginx upstream backend { least_conn; server 10.0.0.1:8080; server 10.0.0.2:8080; } 3. ip_hash(IP 哈希) 根据客户端 IP 计算哈希结果,将同一 IP 的请求固定转发到同一后端节点,用于需要保持会话(session)的场景。 nginx upstream backend { ip_hash; server 10.0.0.1:8080; server 10.0.0.2:8080; } 注意:使用 `ip_hash` 时,如果后端节点被删除或下线,会导致部分客户端的会话重新分配。若仅临时下线节点,建议使用 `down` 参数而非直接删除。 4. hash(通用哈希) `hash` 指令支持自定义 key 进行哈希分配,例如使用请求 URI 或指定变量。`consistent` 参数可启用一致性哈希,减少节点变化时重新映射的范围。 nginx upstream backend { hash $request_uri consistent; server 10.0.0.1:8080; server 10.0.0.2:8080; } #### 四、 keepalive 指令:开启长连接 `keepalive` 指令用于设置 Nginx 与后端服务器之间保持的空闲长连接数量,显著减少 TCP 握手开销,提升性能。该指令需要配合 `proxy_http_version` 和 `proxy_set_header Connection` 使用。 nginx upstream backend { server 10.0.0.1:8080; server 10.0.0.2:8080; keepalive 32; } server { location / { proxy_pass http://backend; proxy_http_version 1.1; proxy_set_header Connection ""; } } #### 五、 健康检查相关的补充指令 Nginx 开源版本默认通过 `max_fails` 和 `fail_timeout` 实现被动健康检查(即根据转发请求的失败情况判断)。若需主动健康检查,需使用 Nginx Plus 商业版或第三方模块(如 `nginx_upstream_check_module`),开源版本下可通过定时请求进行模拟。 被动健康检查示例: nginx upstream backend { server 10.0.0.1:8080 max_fails=2 fail_timeout=15s; server 10.0.0.2:8080 max_fails=2 fail_timeout=15s; } 上面的配置表示:在 15 秒内,如果某个节点出现 2 次转发失败,则该节点在接下来的 15 秒内被标记为不可用,不再接收新请求。 #### 六、 完整配置示例 以下是一个综合使用权重、轮询、最长空闲连接和健康检查的示例,并附带 gzip 关闭和日志优化等常规反代配置。 nginx http { upstream web_cluster { least_conn; server 10.0.0.11:8080 weight=4 max_fails=2 fail_timeout=10s; server 10.0.0.12:8080 weight=2 max_fails=2 fail_timeout=10s; server 10.0.0.13:8080 weight=1 max_fails=2 fail_timeout=10s down; keepalive 16; } server { listen 80; server_name www.example.com; location / { proxy_pass http://web_cluster; proxy_http_version 1.1; 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 Connection ""; } } } #### 七、 修改配置后的验证方法 配置完成后,务必先测试配置文件的语法是否正确,再平滑重载 Nginx。 bash

测试配置语法

nginx -t

平滑重载配置

nginx -s reload `nginx -t` 会输出 `syntax is ok` 和 `test is successful` 提示;若存在错误,请根据提示修正后重试。重载不会中断现有请求。 #### 八、 注意事项

  • 不要将 `upstream` 块定义在 `server` 或 `location` 内,否则会报错。
  • 使用 `ip_hash` 时,若后端节点删除,易导致大量会话失效;建议配合 `down` 参数使用。
  • `keepalive` 值不宜过大,一般根据业务峰值设置,通常为 16~64 即可,过高可能占用过多连接资源。
  • 出现负载不均时,优先检查后端各节点硬件配置、权重值和连接数,再排查 Nginx 配置。
  • 若需修改防火墙或直接删除后端节点配置,请先在测试环境验证,再操作生产环境。

合理使用上述指令,可构建稳定、高效的 Nginx 负载均衡层。建议结合自身业务场景逐步调整参数,并通过压测验证效果。如有进一步需求,随时告诉我。

AIGEO优化摘要

AI可读摘要:nginx负载均衡的指令有哪些 Nginx 作为高性能反向代理服务器,负载均衡是其核心能力之一。合理配置负载均衡可以提升服务吞吐量、实现高可用。本文介绍 Nginx 中与负载均衡相关的核心指令,并给出可直接使用的配置示例。 #### 一、 upstream 块:定义后端服务器组 负载均衡配置主要写在 `http` 上下文内的 `upstream` 块中。`u...
常见问题:
nginx负载均衡的指令有哪些主要讲了什么?

nginx负载均衡的指令有哪些 Nginx 作为高性能反向代理服务器,负载均衡是其核心能力之一。合理配置负载均衡可以提升服务吞吐量、实现高可用。本文介绍 Nginx 中与负载均衡相关的核心指令,并给出可直接使用的配置示例。 #### 一、 upstream 块:定义后端服务器组 负载均衡配置主要写在 `http` 上下文内的 `upstream` 块中。`u...

nginx负载均衡的指令有哪些适合哪些人参考?

适合正在了解文章信息、进行对比筛选,或希望快速获得结论的用户参考。

阅读nginx负载均衡的指令有哪些时应重点看哪些内容?

建议重点关注标题、摘要、正文说明、图片资料和更新时间。

AIGEO评分:95/100
作者:王壹杰
时间:2026-09-09 11:30:35
来源:https://bt.ciilii.com/