如何快速部署NGINX-Demos?5分钟启动你的第一个负载均衡示例

如何快速部署NGINX-Demos?5分钟启动你的第一个负载均衡示例

【免费下载链接】NGINX-Demos NGINX and NGINX Plus demos 【免费下载链接】NGINX-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欢迎页面

图: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 【免费下载链接】NGINX-Demos 项目地址: https://gitcode.com/gh_mirrors/ng/NGINX-Demos

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值