一、企业背景(真实场景设定)
某中型电商公司在业务增长后,原有单机部署的网站频繁出现:
- 高峰期访问卡顿甚至宕机
- 数据库压力过大
- 无法应对突发流量(如促销活动)
- 数据安全性不足
公司决定将系统迁移到 阿里云,构建一个高可用、可扩展、安全的云架构。
二、实验目标
- 搭建云上网络环境(VPC)
- 部署Web服务器(ECS + Nginx + WordPress)
- 使用云数据库(RDS MySQL)
- 配置负载均衡(SLB)
- 实现高可用架构
- 验证系统访问与容灾能力
三、整体架构(理解重点)
用户访问
↓
负载均衡 SLB
↓
ECS(Web服务器)×2
↓
RDS(MySQL数据库)
关键思想:
- SLB解决“访问压力”
- ECS横向扩展
- RDS提供稳定数据库服务
核心原则:
- Web无状态(可随时扩展)
- 数据集中(RDS)
- 流量统一入口(SLB)
三、实验环境准备(关键前置)
必须统一要求(避免翻车):
| 项目 | 配置 |
|---|---|
| 地域 | 同一地域(如华东1) |
| VPC | 同一个 |
| ECS系统 | Ubuntu 20.04 |
| 安全组 | 开放 22 / 80 |
| RDS | MySQL |
四、实验步骤(超详细版)
步骤1:创建VPC网络
操作:
-
创建VPC
网段:192.168.0.0/16 -
创建交换机
网段:192.168.1.0/24
解释(必须讲):
- ECS 和 RDS 必须在同一VPC
- 数据库走内网,不走公网
步骤2:创建ECS(2台)
配置:
- 数量:2台
- 系统:Ubuntu 20.04
- 公网IP:开启
- 安全组:放行 80端口
步骤3:统一环境
登录两台ECS,必须每台都执行:
1. 更新系统
sudo apt update3. 安装 Nginx + PHP
sudo apt install nginx -y
sudo apt install php-fpm php-mysql -y4. 启动服务
sudo systemctl enable nginx
sudo systemctl start nginx验证:
访问 ECS公网IP
必须看到:
👉 Welcome to nginx 页面
步骤4:部署 WordPress(两台都要做)
cd /var/www/html
sudo rm -rf *
sudo wget https://wordpress.org/latest.tar.gz
sudo tar -xvf latest.tar.gz
sudo mv wordpress/* .
sudo chown -R www-data:www-data /var/www/html步骤5:配置 Nginx 支持 PHP(核心步骤)
编辑:
sudo vim /etc/nginx/sites-available/default替换为:
server {
listen 80;
root /var/www/html;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}重启:
sudo systemctl restart nginx
sudo systemctl restart php7.4-fpm步骤6:验证单机(必须做)
访问:
http://ECS公网IP
必须看到:
WordPress 安装界面
如果这一步不成功,禁止进入下一步
步骤7:创建RDS数据库
操作:
- 创建 MySQL 实例
- 网络选择 VPC
- 开启内网访问
创建数据库:
- 数据库名:wordpress
- 用户名:wpuser
- 密码:自定义
步骤8:配置 WordPress 连接数据库(两台都要做)
cd /var/www/html
cp wp-config-sample.php wp-config.php
vim wp-config.php修改:
define('DB_NAME', 'wordpress');
define('DB_USER', 'wpuser');
define('DB_PASSWORD', '密码');
define('DB_HOST', 'RDS内网地址');步骤9:创建 SLB
操作:
- 创建负载均衡实例
- 添加两台 ECS
- 配置监听:
| 项目 | 值 |
|---|---|
| 协议 | HTTP |
| 端口 | 80 |
步骤10:最终访问(关键验证)
访问:
http://SLB公网IP
结果:
WordPress 安装界面
五、最终验证(必须做实验评分)
测试1:负载均衡
多刷新几次页面
页面稳定
测试2:高可用(核心)
停止一台 ECS:
sudo poweroff再次访问 SLB:
网站仍然正常
测试3:一致性验证(进阶)
在 ECS1 修改:
echo "server1" > /var/www/html/test.html在 ECS2 修改:
echo "server2" > /var/www/html/test.html访问:
http://SLB_IP/test.html
现象:
内容随机变化
SLB是“分发”,不是“同步”