首页主机资讯如何配置Nginx负载均衡

如何配置Nginx负载均衡

时间2026-01-16 07:30:04发布访客分类主机资讯浏览811
导读:Nginx 负载均衡配置指南 一 核心概念与算法 负载均衡通过在 upstream 中定义一组后端,再用 proxy_pass 转发请求,实现流量分发、故障隔离与横向扩容。Nginx 支持的主要算法: 轮询 round-robin:默认...

Nginx 负载均衡配置指南

一 核心概念与算法

  • 负载均衡通过在 upstream 中定义一组后端,再用 proxy_pass 转发请求,实现流量分发、故障隔离与横向扩容。Nginx 支持的主要算法:
    • 轮询 round-robin:默认策略,按顺序分发。
    • 加权轮询 weighted:通过 weight 按性能差异分配流量。
    • 最少连接 least_conn:优先发给当前连接数更少的后端。
    • IP Hash ip_hash:按客户端 IP 计算哈希,实现会话保持(同一 IP 固定到同一后端)。

二 快速上手示例

  • 目标:用 Nginx 将请求分发到两台后端(示例为 192.168.1.101:80192.168.1.102:80),并开启基础健康检查和必要的请求头转发。
  • 配置示例(可直接放入 /etc/nginx/conf.d/lb.conf 或相应 server 配置中):
http {

  upstream backend {
    
    least_conn;
                                       # 可选:最少连接
    server 192.168.1.101:80 max_fails=3 fail_timeout=30s;
    
    server 192.168.1.102:80 max_fails=3 fail_timeout=30s;

  }


  server {
    
    listen 80;
    
    server_name your.domain.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;
    
      proxy_set_header X-Forwarded-Proto $scheme;

    }

  }

}
    
  • 说明:
    • max_fails=3 fail_timeout=30s 表示连续失败 3 次后标记节点不可用 30 秒,随后自动恢复探测。
    • 若需会话保持,可将 upstream 改为:ip_hash; 并去掉 least_conn。

三 常用策略配置

  • 轮询(默认)
upstream backend {
    
  server 10.0.0.11:80;
    
  server 10.0.0.12:80;

}

  • 加权轮询
upstream backend {
    
  server 10.0.0.11:80 weight=3;
    
  server 10.0.0.12:80 weight=1;

}

  • 最少连接
upstream backend {
    
  least_conn;
    
  server 10.0.0.11:80;
    
  server 10.0.0.12:80;

}

  • IP Hash(会话保持)
upstream backend {
    
  ip_hash;
    
  server 10.0.0.11:80;
    
  server 10.0.0.12:80;

}

  • 状态标识与备用节点
upstream backend {
    
  server 10.0.0.11:80 max_fails=3 fail_timeout=30s;
    
  server 10.0.0.12:80 max_fails=3 fail_timeout=30s down;
      # 临时下线
  server 10.0.0.13:80 backup;
                               # 仅当其他节点不可用时启用
}

  • 说明:weight 默认为 1backup 为备用节点;down 表示暂时不参与负载。

四 部署与验证

  • 语法检查与生效
sudo nginx -t                  # 检查配置语法
sudo systemctl reload nginx   # 平滑重载(生产推荐)
# 或 sudo systemctl restart nginx
  • 快速验证
for i in {
1..10}
    ;
     do curl -s http://your.domain.com;
     done
# 观察返回内容或后端访问日志,确认分发是否符合预期
  • 生产建议
    • 开启访问日志与必要的响应时间记录,便于分析负载与后端健康度。
    • upstream 中配置 keepalive 32; 复用与后端的长连接,降低握手开销。
    • 若后端使用域名,可直接在 upstream 中使用域名(支持动态解析场景)。

五 进阶与高可用

  • HTTPS 终止
    • listen 443 ssl; 的 server 中使用 proxy_pass https://backend; ,并配置证书与所需 SSL 参数,将 TLS 终止在 Nginx 层。
  • 健康检查增强
    • max_fails/fail_timeout 的被动探测外,可结合 ngx_http_healthcheck_module 或商用版 NGINX Plus 的主动健康检查,实现更细粒度的可用性控制。
  • 负载均衡器高可用
    • 为避免单点故障,可使用 Keepalived + VIP 或云厂商的 负载均衡器 对多台 Nginx 实例做高可用。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何配置Nginx负载均衡
本文地址: https://pptw.com/jishu/781080.html
如何在centos上使用tomcat集群 如何在centos上通过sqlplus管理数据库

游客 回复需填写必要信息