实验内容:阿里云负载均衡 SLB 流量分发实验(ECS 无公网 IP)
一、实验目标
- 部署两台 ECS 实例(私网 IP)并运行 Web 服务。
- 创建公网型负载均衡 SLB,通过 SLB 的公网 IP 访问 Web 服务。
- 配置健康检查和轮询调度,测试负载均衡分发效果。
- 实验过程中 ECS 无需公网 IP,通过 SLB 访问服务即可。
二、实验拓扑
┌──────────────┐
│ 用户访问 │
└──────┬──────┘
│
┌─────────────────┐
│ 公网型 SLB │ <- 公网 IP,用户通过互联网访问
└───────┬─────────┘
│
┌──────┴──────┐
│ │
┌───────────┐ ┌───────────┐
│ ECS1 │ │ ECS2 │
│ (私网IP) │ │ (私网IP) │
│ Web服务 │ │ Web服务 │
└───────────┘ └───────────┘
三、Step1:创建自定义VPC与跨可用区交换机(核心基础)
SLB高可用模式要求后端ECS必须在同一VPC、不同可用区,因此VPC和交换机是整个实验的网络根基,切勿跳过。
1.1 创建专有网络VPC
-
登录阿里云控制台,搜索进入专有网络VPC页面
-
点击【创建VPC】,按以下参数配置(企业可自定义名称和网段):
-
VPC名称:VPC-Web-Prod(生产环境Web业务专用)
-
IPv4网段:192.168.0.0/16(私网标准网段,可按需调整)
-
描述:Web服务负载均衡专用VPC
-
-
点击【确定】,完成VPC创建
1.2 创建跨可用区私网交换机
交换机必须归属上述VPC,且分属两个不同可用区,实现容灾备份。
交换机1(可用区A)
-
交换机名称:VSwitch-AZ1
-
所属VPC:选择刚创建的VPC-Web-Prod
-
可用区:华东2(上海)可用区G(任选一个可用区)
-
IPv4网段:192.168.1.0/24(子网网段,属于VPC网段子集)
交换机2(可用区B)
-
交换机名称:VSwitch-AZ2
-
所属VPC:VPC-Web-Prod
-
可用区:华东2(上海)可用区H(必须与交换机1不同)
-
IPv4网段:192.168.2.0/24
技术解释:跨可用区部署是企业高可用核心,单个可用区出现机房故障、网络抖动时,另一可用区的ECS可继续提供服务,SLB会自动剔除故障节点。
四、Step2:创建安全组(最小权限原则)
安全组是阿里云的虚拟防火墙,企业场景必须遵循“最小权限开放”,禁止全端口放行。
-
进入阿里云【ECS控制台】-【安全组】,点击【创建安全组】
-
配置参数:
-
安全组名称:SG-Web-SLB
-
所属VPC:VPC-Web-Prod
-
安全组规则:仅放行Web服务80端口(HTTP)
-
入方向规则(关键)
| 协议类型 | 端口范围 | 源地址 | 描述 |
|---|---|---|---|
| TCP | 80/80 | 0.0.0.0/0 | 允许公网访问Web服务 |
| 出方向规则保持默认(允许全部出站),创建后将安全组绑定后续两台ECS。 |
五、Step3:创建2台无公网ECS(Ubuntu/Debian)
企业场景中,后端服务ECS无需公网IP,仅通过内网与SLB通信,既安全又省钱。本次创建两台ECS,分属两个可用区。
ECS基础配置(两台一致)
-
镜像:Ubuntu 22.04(Debian 11/12通用,命令一致)
-
实例规格:突发性能型t6.large(实验用低成本规格,生产按需升级)
-
公网IP:不分配(核心!禁止勾选)
-
安全组:SG-Web-SLB
-
登录方式:密码/密钥对(企业推荐密钥对,实验用密码更便捷)
ECS差异化配置
ECS-Web1
-
实例名称:ECS-Web1
-
可用区:华东2可用区G
-
交换机:VSwitch-AZ1
ECS-Web2
-
实例名称:ECS-Web2
-
可用区:华东2可用区H
-
交换机:VSwitch-AZ2
创建完成后,通过阿里云Workbench远程连接登录ECS(无需公网IP,内网直达)。
六、Step4:ECS部署Nginx+配置差异化首页
两台ECS均安装Nginx,分别配置“我是web1”“我是web2”首页,用于验证负载均衡效果。
6.1 两台ECS通用操作(安装Nginx)
# 更新软件源
sudo apt update -y
# 安装Nginx
sudo apt install nginx -y
# 启动Nginx并设置开机自启
sudo systemctl start nginx
sudo systemctl enable nginx
# 放行系统防火墙80端口(Ubuntu/Debian默认UFW防火墙)
sudo ufw allow 80/tcp
sudo ufw reload6.2 Web1 ECS配置专属首页
# 覆盖Nginx默认首页
echo "我是web1" | sudo tee /var/www/html/index.html
# 重启Nginx生效
sudo systemctl restart nginx
# 本地验证(出现“我是web1”即为成功)
curl localhost6.3 Web2 ECS配置专属首页
# 覆盖Nginx默认首页
echo "我是web2" | sudo tee /var/www/html/index.html
# 重启Nginx生效
sudo systemctl restart nginx
# 本地验证(出现“我是web2”即为成功)
curl localhost至此,两台后端Web服务部署完成,且仅对内网开放,等待SLB转发流量。
七、Step5:创建公网SLB+配置监听(核心负载均衡)
SLB作为公网入口,负责接收用户请求并轮询分发至两台ECS,必须绑定前文VPC且勾选双可用区。
7.1 创建公网SLB实例
-
进入阿里云【负载均衡SLB】控制台,点击【创建实例】
-
核心参数配置:
-
实例类型:应用型负载均衡ALB(或传统型SLB,本文以SLB为例)
-
网络类型:公网
-
所属VPC:VPC-Web-Prod
-
可用区:勾选可用区G、可用区H(与ECS可用区完全对应)
-
计费方式:按流量计费(实验低成本,生产可改包年包月)
-
-
创建完成后,记录SLB的公网IP地址(后续测试用)
7.2 添加HTTP监听(80端口)
监听是SLB转发流量的规则,配置后才能实现负载均衡。
-
进入SLB实例详情页,点击【监听】-【添加监听】
-
监听配置:
-
前端协议/端口:HTTP / 80
-
后端协议/端口:HTTP / 80
-
调度算法:轮询(企业默认均衡分发,可改加权轮询)
-
健康检查:开启(默认配置,检查路径/,状态码200为正常)
-
会话保持:关闭(实验需轮询效果,生产可按需开启)
-
7.3 添加后端服务器
-
创建后端服务器组,选择默认服务器组
-
点击【添加】,勾选ECS-Web1、ECS-Web2,端口设置为80,权重均设为100
-
确认配置,等待健康检查状态变为正常(1-2分钟生效)
避坑提示:若健康检查异常,排查ECS安全组80端口、Nginx是否启动、防火墙是否放行。
八、Step6:负载均衡效果测试
打开浏览器/终端,访问SLB公网IP:
http://SLB公网IP
连续刷新页面(Ctrl+F5强制刷新,规避浏览器缓存),会交替显示:
我是web1
我是web2
我是web1
我是web2
证明负载均衡轮询调度生效,流量均匀分发至两台ECS。