当前位置: 首页 > 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.xdnf.cn/news/1237411.html

相关文章:

  • 6. 平台总线
  • 跨语言模型中的翻译任务:XLM-RoBERTa在翻译任务中的应用
  • Compose笔记(四十一)--ExtendedFloatingActionButton
  • 有限元方法中的数值技术:三角矩阵求解
  • Redis面试精讲 Day 10:Redis数据结构底层实现原理
  • 【AI论文】Rep-MTL:释放表征级任务显著性在多任务学习中的潜力
  • 介绍JAVA语言、介绍greenfoot 工具
  • 数据结构中使用到的C语言
  • golang的包和闭包
  • Python 小数据池(Small Object Pool)详解
  • 使用AndroidStudio调试Framework源码
  • 关于域名的级别
  • Linux环境下使用Docker搭建多服务环境
  • Apache Shenyu 本地启动及快速入门
  • Flutter开发 dart异步
  • 动态置信度调优实战:YOLOv11多目标追踪精度跃迁方案(附完整代码)
  • 基于springboot的在线考试系统/考试信息管理平台
  • 生成式人工智能展望报告-欧盟-04-社会影响与挑战
  • trace-cmd记录线程被中断打断的时间
  • Java 实现poi方式读取word文件内容
  • 编译旧版本的electron内核
  • VisualStudio的一些开发经验
  • 能表示旋转的矩阵是一个流形吗?
  • C++与Go的匿名函数编程区别对比
  • 吴恩达【prompt提示词工程】学习笔记
  • 曼哈顿距离与切比雪夫距离
  • 北京-4年功能测试2年空窗-报培训班学测开-第六十六天
  • Digit Queries
  • Arrays.asList() add方法报错java.lang.UnsupportedOperationException
  • 常见的深度学习模块/操作中的维度约定(系统性总结)