一篇从零搭建到实测上线的高可用 Nginx 负载均衡案例教程。
在现代业务中,单台应用服务器往往无法承载高并发请求。
Nginx 作为轻量级高性能的反向代理服务器,能同时实现:

本文通过一个电商商品服务集群的实战项目,带你从零实现高可用 Nginx 架构。
我们模拟一个商品服务集群(product service):
| 节点名称 | IP | 说明 |
|---|---|---|
| app1 | 192.168.10.101 | 主节点 |
| app2 | 192.168.10.102 | 副节点 |
| app3 | 192.168.10.103 | 扩容节点 |
| nginx-lb | 192.168.10.10 | 负载均衡代理服务器 |
请求流程如下:
Client → Nginx (负载均衡+健康检查)
↓
┌───────────────┬───────────────┬───────────────┐
│ App1 │ App2 │ App3 │
│ 商品服务节点1 │ 商品服务节点2 │ 商品服务节点3 │
└───────────────┴───────────────┴───────────────┘
sudo apt update sudo apt install nginx -y
查看版本:
nginx -v
编辑 /etc/nginx/conf.d/loadbalance.conf:
upstream product_cluster {
# 轮询策略(默认)
server 192.168.10.101:8080 max_fails=3 fail_timeout=10s;
server 192.168.10.102:8080 max_fails=3 fail_timeout=10s;
server 192.168.10.103:8080 max_fails=3 fail_timeout=10s backup;
}
server {
listen 80;
server_name product.demo.local;
location / {
proxy_pass http://product_cluster;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
轮询模式默认自动分配请求
max_fails:健康检查失败次数阈值
backup:备用节点,仅主节点失效时启用
保存后测试:
nginx -t systemctl reload nginx
Nginx 开源版不自带健康检查模块,我们可通过 ngx_http_upstream_check_module 或 nginx-plus 实现。
如果使用 OpenResty (推荐):
sudo apt install openresty -y
配置文件 /usr/local/openresty/nginx/conf/nginx.conf:
http {
upstream product_cluster {
server 192.168.10.101:8080;
server 192.168.10.102:8080;
check interval=5000 rise=2 fall=5 timeout=3000 type=http;
check_http_send "HEAD /health HTTP/1.0\r\n\r\n";
check_http_expect_alive http_2xx http_3xx;
}
server {
listen 80;
location / {
proxy_pass http://product_cluster;
}
location /status {
check_status;
access_log off;
allow 192.168.10.0/24;
deny all;
}
}
}
访问 http://nginx-lb/status 可以实时看到健康状态:
| IP | 状态 | 延迟 |
|---|---|---|
| 192.168.10.101 | up | 12ms |
| 192.168.10.102 | down | - |
| 192.168.10.103 | up | 8ms |
当新增一台应用服务器时,只需修改 upstream 段:
upstream product_cluster {
include /etc/nginx/upstreams/*.conf;
}
然后在 /etc/nginx/upstreams/ 目录中增加或删除节点配置文件:
echo "server 192.168.10.104:8080;" > /etc/nginx/upstreams/node4.conf
无需重启,仅需平滑加载:
nginx -s reload
这样 Nginx 就能动态感知新节点加入!
打开访问日志:
/var/log/nginx/access.log
内容示例:
192.168.10.201 - - [05/Nov/2025:14:32:01 +0800] "GET /api/product/1001 HTTP/1.1" 200 524 "-" "Mozilla" upstream_addr=192.168.10.101:8080 192.168.10.201 - - [05/Nov/2025:14:32:02 +0800] "GET /api/product/1002 HTTP/1.1" 200 530 "-" "Mozilla" upstream_addr=192.168.10.102:8080
我们可以统计各节点命中率:
awk '{print $NF}' /var/log/nginx/access.log | sort | uniq -c | sort -nr
输出:
240 192.168.10.101:8080
235 192.168.10.102:8080
225 192.168.10.103:8080
通过 Grafana + Loki,还能将这些日志实时可视化。
sudo systemctl stop product-service@192.168.10.102
访问 /status 页面:
| 节点 | 状态 |
|---|---|
| app1 | up |
| app2 | ❌ down |
| app3 | up |
Nginx 自动将 app2 从负载池中移除,保持服务不中断。
恢复服务后再次上线:
sudo systemctl start product-service@192.168.10.102
状态自动恢复为 “up”。
| 功能 | 技术点 | 说明 |
|---|---|---|
| 负载均衡 | upstream 轮询 | 均衡分配请求 |
| 健康检查 | openresty check 模块 | 自动移除异常节点 |
| 动态扩展 | include + reload | 实现节点热更新 |
| 监控分析 | 日志统计 + Grafana | 实时监控请求分布 |
/etc/nginx/ ├── conf.d/ │ └── loadbalance.conf ├── upstreams/ │ ├── node1.conf │ ├── node2.conf │ └── node3.conf ├── logs/ │ └── access.log └── nginx.conf
通过本次实战,我们实现了:
这套方案非常适合中小企业、内部微服务架构、测试环境或生产高可用场景。
# Nginx高可用配置
# Nginx负载均衡
# Nginx+Keepalive实现高可用负载均衡
# Nginx+keepalived实现七层的负载均衡的高可用(最新解决方案)
# keepalived+lvs 对nginx做负载均衡和高可用的操作方法
# 使用Nginx + Keepalived 实现高可用 Web 负载均衡笔记(虚拟机)
# Keepalived实现Nginx负载均衡高可用的示例代码
# 负载均衡
# 移除
# 重启
# 代理服务器
# 配置文件
# 就能
# 只需
# 一台
# 我们可以
# 或删除
# 这套
# 自带
# 能将
# 可通过
# 高性能
# 带你
# 开源
# 仅需
# 池中
# 实时监控
相关文章:
如何快速查询网址的建站时间与历史轨迹?
如何高效完成独享虚拟主机建站?
如何通过山东自助建站平台快速注册域名?
如何在宝塔面板创建新站点?
详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
如何快速搭建个人网站并优化SEO?
网站制作壁纸教程视频,电脑壁纸网站?
如何在Ubuntu系统下快速搭建WordPress个人网站?
单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?
香港服务器网站推广:SEO优化与外贸独立站搭建策略
网站建设制作、微信公众号,公明人民医院怎么在网上预约?
广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?
常州企业网站制作公司,全国继续教育网怎么登录?
建站之星导航配置指南:自助建站与SEO优化全解析
南京网站制作费用,南京远驱官方网站?
建站之星代理如何优化在线客服效率?
专业公司网站制作公司,用什么语言做企业网站比较好?
c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
如何选择高效稳定的ISP建站解决方案?
建站之星北京办公室:智能建站系统与小程序生成方案解析
网站制作说明怎么写,简述网页设计的流程并说明原因?
建站之星会员如何解锁更多建站功能?
番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?
怎么将XML数据可视化 D3.js加载XML
想学网站制作怎么学,建立一个网站要花费多少?
如何选择服务器才能高效搭建专属网站?
在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?
网站制作的步骤包括,正确网址格式怎么写?
简易网站制作视频教程,使用记事本编写一个简单的网页html文件?
开源网站制作软件,开源网站什么意思?
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
济南专业网站制作公司,济南信息工程学校怎么样?
如何在Windows 2008云服务器安全搭建网站?
常州企业建站如何选择最佳模板?
C#怎么使用委托和事件 C# delegate与event编程方法
做企业网站制作流程,企业网站制作基本流程有哪些?
如何快速使用云服务器搭建个人网站?
公司网站制作价格怎么算,公司办个官网需要多少钱?
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
如何做网站制作流程,*游戏网站怎么搭建?
魔毅自助建站系统:模板定制与SEO优化一键生成指南
如何在Golang中处理模块冲突_解决依赖版本不兼容问题
如何安全更换建站之星模板并保留数据?
简历在线制作网站免费,免费下载个人简历的网站是哪些?
如何确保FTP站点访问权限与数据传输安全?
我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?
电商网站制作价格怎么算,网上拍卖流程以及规则?
如何在万网开始建站?分步指南解析
TestNG的testng.xml配置文件怎么写
*请认真填写需求信息,我们会在24小时内与您取得联系。