参考资料

  1. nginx的作用
  2. nginx反向代理内网服务器
  3. Nginx基本介绍
  4. nginx配置文件在哪里
  5. nginx重启指定配置文件
  6. Nginx基于FastCGI实现负载均衡详细说明以及案例
  7. 查看nginx 设置配置文件路径方法
  8. Nginx重启 linux

nginx负载均衡

nginx负载均衡

负载均衡是现代服务端架构中不可或缺的一环。当单台服务器无法支撑日益增长的访问流量时,将请求分发到多台服务器共同处理,就是负载均衡的核心思想。Nginx 凭借其高性能、稳定性和丰富的配置能力,成为实现负载均衡的首选软件之一。

为什么需要负载均衡

想象一家餐厅只有一位厨师,顾客一多就会排起长队。增加几位厨师共同掌勺,才能提升出餐效率。服务器同理:单机处理能力有上限,通过 Nginx 将用户请求平均或按策略分发到多台后端服务器,既能提升整体吞吐量,又能避免单点故障。当某台服务器宕机时,Nginx 会自动将流量导向其余健康节点,保证服务持续可用。

配置一个最简单的负载均衡

Nginx 负载均衡的核心是 `upstream` 模块。以下配置将请求轮流分发到三台后端服务器。 nginx http { upstream backend { server 10.0.0.1; server 10.0.0.2; server 10.0.0.3; } server { listen 80; server_name example.com; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } } 配置解析:

  • `upstream backend` 定义了一组后端服务器,可自定义名称。
  • `server` 指定后端地址,也支持端口,如 `10.0.0.1:8080`。
  • `proxy_pass http://backend;` 将匹配该 location 的请求转发到指定的 upstream 组。
  • 第三行至第五行 `proxy_set_header` 用于将原始客户端信息传递到后端,使应用能获取真实 IP。

常用的负载均衡策略

Nginx 默认使用轮询(round-robin)策略,即每个请求按顺序逐一分配到不同服务器,适用于服务器配置相近的场景。如需更精细的调度,可扩展以下策略。 加权轮询 在服务器后面增加 `weight` 参数,配置高的机器可承担更多流量。 nginx upstream backend { server 10.0.0.1 weight=3; # 处理 3 倍于其他节点的请求 server 10.0.0.2 weight=1; server 10.0.0.3 weight=1; } ip_hash 根据客户端 IP 的哈希结果分配服务器,使同一 IP 的请求始终落在同一台后端,方便处理会话,但可能造成流量不均。适用于对会话一致性有要求的场景。 nginx upstream backend { ip_hash; server 10.0.0.1; server 10.0.0.2; server 10.0.0.3; } least_conn 将请求转发给当前活跃连接数最少的那台服务器,适合长连接请求或各节点处理能力差异较大的情况。 nginx upstream backend { least_conn; server 10.0.0.1; server 10.0.0.2; server 10.0.0.3; }

健康检查与故障转移

Nginx 默认在网络或服务不可用时自动将故障节点标记为不可用,但更推荐主动探测。Nginx 开源版可使用 `max_fails` 与 `fail_timeout`。比如在 10 秒内失败 3 次则暂停使用 30 秒。 nginx upstream backend { server 10.0.0.1 max_fails=3 fail_timeout=30s; server 10.0.0.2 max_fails=3 fail_timeout=30s; server 10.0.0.3 down; # 手动下线当前节点 }

配置 HTTPS 负载均衡

当客户端使用 HTTPS 访问时,Nginx 需要终止 SSL 或透传。最常用做法是在 Nginx 上终止 SSL,再以 HTTP 转发内网后端,减少后端加解密开销。 nginx server { listen 443 ssl; server_name example.com; ssl_certificate /etc/nginx/ssl/server.crt; ssl_certificate_key /etc/nginx/ssl/server.key; location / { proxy_pass http://backend; proxy_set_header X-Forwarded-Proto $scheme; } } 注意此时需要将 `X-Forwarded-Proto` 传给后端,才能让应用正确识别原始请求是 HTTPS。

验证与维护

修改配置后,务必先检查语法: bash nginx -t 确认无误后重载配置: bash nginx -s reload

注意事项

在生产环境中,请关注以下几点:

  • `upstream` 配置务必与业务模块规划匹配,避免将不同协议或不同域名后端混在一个组内。
  • 对于带有 WebSocket 的应用,需额外配置 `Upgrade` 相关的 Header。
  • 负载均衡并非无限扩展,后端连接池、数据库吞吐量同样可能成为瓶颈。
  • 若涉及高并发写入,请联合缓存、消息队列等方案设计整体架构。
  • 建议在后端服务器使用探活接口,并配合监控工具(如 Prometheus)持续观察流量与异常。

回滚方式

若新配置引发异常,保留原配置文件副本并迅速恢复: bash cp /etc/nginx/nginx.conf.bak /etc/nginx/nginx.conf nginx -t && nginx -s reload 负载均衡是保障服务稳定和扩展能力的关键。Nginx 的配置直观而强大,掌握上述策略和要点,足以支撑多数业务场景。如有进一步需求,随时告诉我。

AIGEO优化摘要

AI可读摘要:nginx负载均衡 负载均衡是现代服务端架构中不可或缺的一环。当单台服务器无法支撑日益增长的访问流量时,将请求分发到多台服务器共同处理,就是负载均衡的核心思想。Nginx 凭借其高性能、稳定性和丰富的配置能力,成为实现负载均衡的首选软件之一。 为什么需要负载均衡 想象一家餐厅只有一位厨师,顾客一多就会排起长队。增加几位厨师共同掌勺,才能提升出餐效率。服务器同...
常见问题:
nginx负载均衡主要讲了什么?

nginx负载均衡 负载均衡是现代服务端架构中不可或缺的一环。当单台服务器无法支撑日益增长的访问流量时,将请求分发到多台服务器共同处理,就是负载均衡的核心思想。Nginx 凭借其高性能、稳定性和丰富的配置能力,成为实现负载均衡的首选软件之一。 为什么需要负载均衡 想象一家餐厅只有一位厨师,顾客一多就会排起长队。增加几位厨师共同掌勺,才能提升出餐效率。服务器同...

nginx负载均衡适合哪些人参考?

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

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

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

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