news 2026/4/21 7:19:21

Nginx负载均衡配置详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Nginx负载均衡配置详解

NGINX负载均衡配置详解

准备工作

47.112.199.100 #反向代理服务器
47.112.199.101 #真实服务器1
47.112.199.102 #真实服务器2

1.反向代理服务器配置
worker_processes 1; events { worker_connections 1024; } http { # 定义后端服务器组 upstream backend { # 默认轮询算法(请求按顺序分配) server 47.112.199.101; server 47.112.199.102; # 也可以使用其他算法,例如: # ip_hash; # IP哈希算法,同一IP请求固定到同一服务器 # weight=2; # 加权轮询,第一个服务器权重为2,第二个为1 } # 配置反向代理服务器 server { listen 80; server_name hyztest.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; # 可选:设置超时时间 proxy_connect_timeout 60s; proxy_read_timeout 60s; proxy_send_timeout 60s; } } }
2.真实服务器配置

两台后端服务器配置一般保持一致

worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; location / { root /data/www/html; index index.html index.html; } } }
3.创建测试页面

在两台后端服务器中,分别创建测试页面

vim/data/www/html/index/html
#节点1<h1>Server 1: 47.112.199.101</h1>#节点2<h1>Server 2: 47.112.199.102</h1>
4.启动NGINX访问测试

在浏览器中输入域名hyztest.com访问,可以看到server1和server2轮询访问


5.常用负载均衡算法
① 轮询(默认):默认算法,请求按顺序分配到各服务器
upstream backend { server 47.112.199.101; server 47.112.199.102; }
② 加权轮询:适用于服务器性能不均的场景,如新老服务器混用
upstream backend { server 47.112.199.101 weight=3; # 性能较强服务器处理3份请求 server 47.112.199.102 weight=1; # 性能较弱服务器处理1份请求 }
③ IP哈希:基于客户端IP哈希,同一IP请求固定到同一服务器,适合需要会话保持的场景
upstream backend { ip_hash; server 47.112.199.101; server 47.112.199.102; }
④ 最少连接:动态选择当前连接数最少的服务器,适合长连接场景(如WebSocket)
upstream backend { least_conn; server 47.112.199.101; server 47.112.199.102; }
⑤ URL哈希(需要第三方模块):基于请求URL哈希,相同URL的请求分配到同一服务器,适合缓存服务器
upstream backend { hash $request_uri consistent; server 47.112.199.101; server 47.112.199.102; }
⑥备用服务器:当主服务器全部不可用时,请求才会分配到备用服务器
upstream backend { server 47.112.199.101; server 47.112.199.102 backup; }
6.高级负载均衡算法
①加权轮询 + 健康检查
upstream backend { server 47.112.199.101 weight=3 max_fails=2 fail_timeout=30s; server 47.112.199.102 weight=1 max_fails=2 fail_timeout=30s; }
②IP哈希+健康检查
upstream backend { ip_hash; server 47.112.199.101 max_fails=2 fail_timeout=30s; server 47.112.199.102 max_fails=2 fail_timeout=30s; }

参数说明

  • max_fails=2:在fail_timeout时间内,如果请求失败2次,就将该服务器标记为"down"
  • fail_timeout=30s:标记为"down"后,30秒内不再向该服务器发送请求
  • 自动剔除:当服务器宕机时,Nginx会自动停止向该服务器发送请求
    imeout=30s;
    }
> 参数说明 > - `max_fails=2`:在`fail_timeout`时间内,如果请求失败2次,就将该服务器标记为"down" > - `fail_timeout=30s`:标记为"down"后,30秒内不再向该服务器发送请求 > - **自动剔除**:当服务器宕机时,Nginx会自动停止向该服务器发送请求 > - **自动恢复**:当服务器恢复后,Nginx会继续向其发送请求
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/21 7:13:15

如何3分钟解决百度网盘提取码难题:baidupankey完全指南

如何3分钟解决百度网盘提取码难题&#xff1a;baidupankey完全指南 【免费下载链接】baidupankey 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾因找不到百度网盘提取码而错过重要资源&#xff1f;当朋友分享学习资料、同事发送工作文件&#xff…

作者头像 李华
网站建设 2026/4/21 7:08:15

一款用于监控跨多台主机 Docker 容器的实时终端

一款用于监控跨多台主机 Docker 容器的实时终端用户界面。可直接在终端跟踪 CPU、内存和网络指标。 速度极快&#xff0c;资源占用极低。介绍它支持 ssh、tcp 和本地连接&#xff0c;并与 Dozzle 集成用于容器日志。优点&#xff1a;&#x1f4bb; 实时监控 ——容器状态和指标…

作者头像 李华