当前位置: 首页 > news >正文

Nginx负载均衡配置

Nginx 负载均衡配置指南

基础负载均衡配置
http {# 定义上游服务器组upstream backend_servers {server 127.0.0.1:8080;  # 后端服务器1server 127.0.0.1:8081;  # 后端服务器2server 127.0.0.1:8082;  # 后端服务器3}server {listen       80;server_name  192.168.0.55;location / {proxy_pass http://backend_servers;  # 指向服务器组proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}}
}

核心配置参数详解

1. 负载均衡策略
策略配置示例说明
轮询upstream { server 1; server 2; }默认策略,请求均匀分配
权重server 1 weight=3; server 2;权重越高分配请求越多
IP哈希ip_hash;同一客户端固定访问相同后端
最少连接least_conn;优先分配给连接数最少的服务器
upstream backend {ip_hash;  # 使用IP哈希策略server 192.168.1.101 weight=5;server 192.168.1.102 weight=3;server 192.168.1.103 backup;  # 备用服务器
}
2. 健康检查配置
upstream backend {server 127.0.0.1:8080 max_fails=3 fail_timeout=30s;server 127.0.0.1:8081 max_fails=2 fail_timeout=15s;# 主动健康检查(需要nginx-plus)health_check interval=5s fails=3 passes=2 uri=/health;
}
  • max_fails:允许失败次数(默认1)
  • fail_timeout:失败超时时间(默认10s)
  • backup:标记为备用服务器
3. 高级代理参数
location / {proxy_pass http://backend_servers;# 连接优化proxy_connect_timeout 5s;     # 连接超时proxy_read_timeout 60s;        # 读取响应超时proxy_send_timeout 30s;        # 发送请求超时# 缓冲区配置proxy_buffering on;proxy_buffer_size 4k;          # 单个缓冲区大小proxy_buffers 8 16k;           # 缓冲区数量*大小# 重试机制proxy_next_upstream error timeout http_500;proxy_next_upstream_tries 3;   # 最大重试次数proxy_next_upstream_timeout 10s;
}

完整配置示例

#user  nobody;
worker_processes  auto;  # 自动匹配CPU核心数events {worker_connections  10240;  # 高并发场景增大连接数use epoll;                  # Linux高性能模式
}http {include       mime.types;default_type  application/octet-stream;sendfile        on;tcp_nopush      on;         # 优化数据包发送keepalive_timeout  65;# 负载均衡服务器组upstream app_cluster {least_conn;             # 最少连接策略server 192.168.1.101:8080 weight=3 max_fails=2 fail_timeout=30s;server 192.168.1.102:8080 weight=2;server 192.168.1.103:8080 backup;  # 备用服务器}# 静态资源服务器组upstream static_servers {server 192.168.1.201:80;server 192.168.1.202:80;}server {listen       80;server_name  www.demosite.com;# 动态请求负载均衡location /api {proxy_pass http://app_cluster;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";}# 静态资源负载均衡location ~* \.(jpg|css|js)$ {proxy_pass http://static_servers;proxy_cache my_cache;          # 启用缓存proxy_cache_valid 200 1d;      # 200响应缓存1天expires 30d;                   # 客户端缓存30天}# 错误处理error_page 500 502 503 504 /50x.html;location = /50x.html {root   html;}}
}

性能优化参数

参数推荐值说明
worker_processesauto自动匹配CPU核心数
worker_connections10240单个工作进程最大连接数(需配合系统ulimit调整)
keepalive_timeout65s保持连接超时时间
proxy_buffers8 16k缓冲区数量*大小(高并发场景可增大)
proxy_connect_timeout5s后端连接超时时间
gzip on-启用压缩(需在http块添加)
tcp_nopushon优化数据包发送(与sendfile配合使用)

常用调试命令

# 检查配置语法
nginx -t# 热重载配置
nginx -s reload# 查看连接状态
netstat -an | grep :80# 实时监控请求
tail -f /var/log/nginx/access.log

负载均衡拓扑图

请求分发
请求分发
请求分发
客户端
Nginx负载均衡器
后端服务器1:8080
后端服务器2:8081
后端服务器3:8082
数据库

通过此配置,Nginx可实现高效负载均衡,支持超高并发连接。关键点:合理分配服务器权重 + 智能健康检查 + 连接参数优化,三者结合可构建高可用Web服务架构。

http://www.dtcms.com/a/312735.html

相关文章:

  • STM32 串口发送
  • sqli-labs:Less-25关卡详细解析
  • c++ --- priority_queue的使用以及简单实现
  • Navicat连接远程服务器上的mysql
  • Java Stream API 编程实战
  • Java学习第一百部分——Kafka
  • Python批处理深度解析:构建高效大规模数据处理系统
  • kubectl基础操作实战-k8s集群安装
  • IO流-字节流-FileInputStream
  • 【设计模式】0.UML类图
  • Python特性工厂函数详解:优雅管理属性验证
  • 【技术干货】Matplotlib深度集成PyQt5实战:动态_静态图表一站式解决方案
  • 嵌入式学习-(李宏毅)机器学习(5)-day32
  • 集合篇-根据字符串出现频率排序
  • 每日面试题20:spring和spring boot的区别
  • 【MCAL】AUTOSAR架构下SPI数据同步收发具体实现
  • 《深入浅出RabbitMQ:从零基础到面试通关》
  • go 中的 fmt 占位符
  • LUA脚本语言
  • 【svg】
  • 人工智能之数学基础:几何型(连续型)随机事件概率
  • 2、docker容器命令 | 信息查看
  • Redis 7中的List类型指南
  • 14.Redis 哨兵 Sentinel
  • 10.Redis 数据类型
  • Back to the Features中,直观物理的评价指标是什么,计算方式是什么
  • 5 进入 CD 的世界
  • Thread 类的基本用法
  • 蛇形卷积介绍
  • Spring Cloud微服务中的内存泄漏问题定位与解决方案