如何快速部署NGINX-Demos?5分钟启动你的第一个负载均衡示例
【免费下载链接】NGINX-Demos NGINX and NGINX Plus demos 项目地址: https://gitcode.com/gh_mirrors/ng/NGINX-Demos
NGINX-Demos是一个集合了多种NGINX和NGINX Plus演示案例的项目,通过它可以快速学习和实践NGINX的各种功能,包括负载均衡、自动扩展、健康检查等核心应用场景。本文将带你在5分钟内完成环境搭建并运行第一个负载均衡示例,让你直观体验NGINX的强大功能。
准备工作:一键获取项目源码
首先需要将项目代码克隆到本地,打开终端执行以下命令:
git clone https://gitcode.com/gh_mirrors/ng/NGINX-Demos
cd NGINX-Demos
项目中包含多个演示案例,我们将以autoscaling-demo为例,体验负载均衡和自动扩展功能。该案例使用Docker容器部署NGINX Plus作为负载均衡器,配合NGINX Web服务器和NGINX Unit应用服务器构建完整的服务架构。
5分钟部署步骤:从环境准备到启动服务
步骤1:安装依赖组件
确保系统已安装Docker和Python环境,如未安装可参考以下命令(以Ubuntu为例):
# 安装Docker
sudo apt-get update && sudo apt-get install -y docker.io python3-pip
# 安装Python依赖
pip3 install requests
步骤2:构建基础镜像
进入autoscaling-demo目录,执行脚本创建所需Docker镜像:
cd autoscaling-demo
# 创建基础NGINX Plus镜像
./nginx_base/createbaseimage.sh
# 创建负载均衡器镜像
./nginx_lb/createlbimage.sh
# 创建Web服务器镜像
./nginx_ws/createwsimage.sh
# 创建NGINX Unit应用服务器镜像
./unit/createunitimage.sh
步骤3:一键启动完整环境
运行环境初始化脚本,自动创建负载均衡器、Web服务器和应用服务器容器:
cd scripts
./createenv.sh
执行成功后,使用docker ps命令可看到运行中的容器,包括:
- NGINX Plus负载均衡器(nginxpluslb)
- NGINX Web服务器(nginxplusws)
- NGINX Unit应用服务器(nginxunit)
验证负载均衡效果:直观体验请求分发
访问演示页面
在浏览器中输入服务器IP地址,即可看到NGINX欢迎页面,页面会显示当前处理请求的服务器地址:
图:NGINX-Demos项目中的欢迎页面,显示服务器地址和请求信息
手动扩展后端服务
通过以下命令添加更多Web服务器节点,体验负载均衡效果:
# 添加2个Web服务器容器
./addnginxws.sh 2
刷新浏览器,会发现请求被分发到不同的后端服务器,实现了负载均衡。
启用会话持久化
执行以下命令启用会话持久化,测试请求是否会固定到同一台服务器:
# 启用会话持久化
./persiston.sh
再次刷新浏览器,会发现多次请求始终由同一台服务器处理,说明会话持久化生效。可通过./persistoff.sh命令关闭该功能。
进阶操作:自动扩展与健康检查
运行自动扩展程序
项目提供了基于请求量的自动扩展脚本,执行后会根据实时请求数动态调整后端服务器数量:
# 启动自动扩展(默认每2秒检查一次请求量)
./autoscale.py
模拟服务器故障
通过以下命令模拟某台服务器健康检查失败,观察自动扩展程序如何处理:
# 获取Web服务器容器映射的端口(假设为32770)
docker ps | grep nginxplusws
# 使该服务器健康检查失败
./seterror.sh 32770
自动扩展程序会检测到故障节点并自动移除,同时可能添加新的健康节点以维持服务稳定性。故障恢复可执行./fixerror.sh 32770命令。
核心配置文件解析
负载均衡配置
负载均衡器的核心配置位于autoscaling-demo/nginx_config/demo.conf,关键配置如下:
upstream nginx_backends {
zone nginx_backends 64k;
server 127.0.0.1:8081 down; # 初始节点(自动管理)
}
server {
listen 80;
location / {
proxy_pass http://nginx_backends;
health_check; # 启用健康检查
}
}
自动扩展脚本
自动扩展逻辑由autoscaling-demo/scripts/autoscale.py实现,通过NGINX Plus API监控请求量并调整后端节点:
# 核心参数(可通过命令行调整)
MIN_NODES = 2 # 最小节点数
MAX_NODES = 10 # 最大节点数
MAX_RPS = 12 # 触发扩容的单节点请求数
MIN_RPS = 10 # 触发缩容的单节点请求数
清理与后续学习
停止并清理环境
演示结束后,可通过以下命令清理所有容器:
# 停止并移除所有容器
./removecontainers.sh
探索更多演示案例
NGINX-Demos项目还包含其他实用案例,推荐探索:
- consul-api-demo:服务发现与动态配置
- fun-with-health-checks:高级健康检查策略
- redis-demo:基于Redis的缓存与会话共享
通过这些案例,你可以全面掌握NGINX在现代应用架构中的多样化应用场景。
通过本文的步骤,你已成功部署了一个功能完整的NGINX负载均衡环境,并体验了自动扩展和健康检查功能。NGINX-Demos项目为学习和测试NGINX提供了丰富的实践场景,建议进一步阅读各案例的README.md文档,深入理解每个功能的实现原理。
【免费下载链接】NGINX-Demos NGINX and NGINX Plus demos 项目地址: https://gitcode.com/gh_mirrors/ng/NGINX-Demos
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考




