本文通过将应用型负载均衡和弹性云主机的组合使用,实现用户请求分按照业务规则转发至两台云主机,熟悉应用型负载均衡的配置操作。
操作场景
通过弹性云主机搭建服务(例如Web服务),当业务量大时单台云主机能力有限,需要两台同时进行业务负载。
本场景通过将应用型负载均衡和弹性云主机的组合使用,实现用户请求分均衡发至两台云主机。本文以华东1为例。
操作步骤
步骤一:创建VPC、子网
登录控制台,选择华东1资源池。
在网络控制台选择虚拟私有云,点击“创建虚拟私有云”,配置VPC的网段:VPC1-10.0.0.0/16。
VPC创建完成后,在网络控制台选择子网,点击“创建子网”,配置2个子网的网段分别为:子网1-10.0.0.0/24、子网2-10.0.1.0/24。
步骤二:创建云主机
登录控制台,选择华东1资源池。
在计算控制台选择弹性云主机,点击“创建云主机”,选择VPC1、子网1,主机的参考配置如下:
| 参数项 | 参数值 |
|---|---|
| 实例名称 | ecs-01、ecs-02 |
| 区域 | 华东-华东1 |
| 操作系统 | CentOS7.6 |
| CPU | 2vCPUs |
| 内存 | 4GB |
| 系统盘 | 40GB |
| 数据盘 | 10GB |
| 安全组 | 默认安全组,开放22、80端口,实际业务中根据具体情况而定 |
| 登录方式 | 密码 |
| 创建密码 | 自定义 |
具体操作,请参考创建弹性云主机。
步骤三、搭建后端服务
在弹性云主机实例上部署Nginx,设置Nginx的默认目录下的index.html页面内容,使访问ecs-01时返回一个标题为“Welcome to ecs-01”的页面,访问ecs-02时返回一个标题为“Welcome to ecs-02”的页面。主要是为了区分访问不同云主机实例时,返回的页面呈现效果不一样。具体步骤如下:
登录弹性云服务器,具体操作请参见登录弹性云主机。
安装Nginx,执行以下命令,下载对应当前系统版本的nginx包。此处以CentOS 7.6版本的操作系统为例。
wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm执行以下命令,建立Nginx的yum仓库。此处以CentOS 7.6版本的操作系统为例。
rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm安装Nginx,执行以下命令。
yum -y install nginx安装完成之后,启动Nginx并设置开机启动,执行以下命令。
systemctl start nginx
systemctl enable nginx修改ecs-01的index.html页面,index.html的默认目录是“/usr/share/nginx/html”,修改“index.html”页面,使访问ecs-01时返回一个标题为“Welcome to ecs-01”的页面。
a. 进入到index.html所在的目录执行以下命令。
cd /usr/share/nginx/htmlb. 执行以下命令打开文件“index.html”。
vim /usr/share/nginx/html/index.htmlc. 按i键进入编辑模式。修改index.html的文件内容,修改的部分如下所示:
<body> <h1>Welcome to <strong>ELB</strong> ecs-01</h1> <div class="content"> <div class="alert"> <h2>ELB01</h2> <div class="content"> <p><strong>Welcome to ecs-01</strong></p> <p><strong>Welcome to ecs-01</strong></p> <p><strong>Welcome to ecs-01</strong></p> </div> </div> </div> </body>d. 按Esc退出编辑,输入:wq保存后退出。
修改ecs-02的index.html页面,index.html的默认目录是“/usr/share/nginx/html”,修改“index.html”页面,使访问ecs-02时返回一个标题为“Welcome to ecs-02”的页面。
a. 进入到index.html所在的目录执行以下命令。cd /usr/share/nginx/htmlb. 执行以下命令打开文件“index.html”。
vim /usr/share/nginx/html/index.htmlc. 按i键进入编辑模式。修改index.html的文件内容,修改的部分如下所示:
<body> <h1>Welcome to <strong>ELB</strong> ecs-02</h1> <div class="content"> <div class="alert"> <h2>ELB02</h2> <div class="content"> <p><strong>Welcome to ecs-02</strong></p> <p><strong>Welcome to ecs-02</strong></p> <p><strong>Welcome to ecs-02</strong></p> </div> </div> </div> </body>d. 按Esc退出编辑,输入:wq保存后退出。
步骤四:创建ALB实例
ALB实例接收来自客户端的请求,并按照监听的转发规则将请求分发至后端主机。
登录控制台,选择华东1资源池。
在网络控制台选择“应用型负载均衡”,点击“创建应用型负载均衡”。
按照页面填写配置,具体配置参数如下:
| 参数 | 说明 |
|---|---|
| 版本功能 | 可选基础版本、标准版;本次选择基础版本 |
| 名称 | 负载均衡器的名称。 |
| 性能上限 | 默认 |
| 所属VPC | 实例所在的VPC |
| 前端子网 | 实例服务地址所在的子网 |
| 是否开启IPv6 | 不开启 |
| 负载均衡虚拟IP | 实例的服务地址IP,支持自定义和手动分配两种方式;本次选择自动分配 |
| 后端子网 | Local IP所在的子网,Local IP负责和后端主机通信 |
| 网络类型 | 内网、外网;本次选择外网 |
| 弹性IP | 外网类型可以选择新建弹性IP |
| 删除保护 | 删除保护开关;本次不开启 |
| 出账方式 | 按小时计费 |
| 企业项目 | 实例支持加入企业项目 |
| 描述 | 实例的描述信息 |
步骤五:配置安全组规则
为了确保ALB与后端主机之间的正常通信和健康检查,添加后端主机后需要检查后端主机所属的安全组规则。当流量从ALB转发到后端主机时,源IP将被替换为后端子网中的Local IP。后端主机的安全组规则应放通源地址为ALB实例的后端子网流量通过。
1.登录控制台,选择华东1资源池。。
2.在计算控制台选择“弹性云主机”,找到创建的云主机实例。
4.点击云主机“名称”进入弹性云主机详情页面,点击“安全组”页签。
5.根据所在后端主机组的后端协议类型在弹出的页面配置入方向规则,点击“确定”,完成安全组规则配置。
安全组规则的配置说明如下:
| 监听器协议 | 安全组授权策略 | 安全组协议、端口 | 安全组放通源地址 |
|---|---|---|---|
| HTTP | 允许 | 协议:TCP 端口:ANY端口 | ALB实例的后端子网IPv4网段、IPv6网段 |
| HTTPS | 允许 | 协议:TCP 端口:ANY端口 | ALB实例的后端子网IPv4网段、IPv6网段 |
步骤六:创建监听器、后端主机组
配置完负载均衡实例后,需要为实例配置监听器。监听器负责检查连接请求,根据负载均衡算法和转发策略配置将请求流量分发到后端主机。具体步骤如下:
登录控制台,选择华东1资源池。
在网络控制台选择“应用型负载均衡”,找到创建的ALB实例,点击“名称”,进入ALB实例详情页。
在“监听器”页签,点击“添加监听器”,根据界面提示配置参数。
| 参数项 | 描述 | 参数值 |
|---|---|---|
| 名称 | 监听器的名称,名称应为2-32位,英文开头,支持大小写英文和数字 | listener01 |
| 监听器协议/端口 | 协议可选择HTTP、HTTPS,端口取值范围1~65535 | HTTP/80;说明:公网IP的80端口需要备案 |
| 描述 | 关于监听器的描述 | 自定义描述 |
点击“下一步”,新建后端主机组。配置参数如下:
| 参数项 | 说明 | 参数值 |
|---|---|---|
| 后端主机组名称 | 名称应为2-32位,英文开头,支持大小写英文和数字 | group01 |
| 类型 | 支持实例类型、IP类型 | 实例类型 |
| 所属VPC | ALB实例所在的VPC | VPC1 |
| 后端协议 | HTTP | HTTP |
| 负载方式 | 轮询算法、最小连接算法、源IP算法 | 轮询算法 |
| 描述 | 描述信息 | 自定义描述信息 |
| 高级配置-会话保持 | 配置会话保持方式 | 不开启 |
| 健康检查 | ALB对后端主机探测健康状态 | 按照默认值 |
步骤七:配置后端主机
登录控制台,选择华东1资源池。
在网络控制台选择“应用型负载均衡”,找到主机组列表页,点击“添加实例类型”,进入添加后端主机详情页。
选择已经创建的ecs-01、ecs-02,勾选后选择“下一步”。
填写具体配置。具体配置如下:
ecs-01 端口:80 权重:100
ecs-02 端口:80 权重:100
点击“确定”,完成后端主机配置。
步骤八:验证业务
您需要设置域名解析,通过DNS解析记录将域名指向ALB的公网IP,这样客户端从公网访问域名时就会将请求解析到ALB实例。公网IP的80端口需要提前备案。
使用浏览器访问对应域名,显示一个标题为“Welcome to ecs-01”的页面,说明本次访问请求被ALB实例转发到弹性云服务器"ecs-01"。
多次使用浏览器访问对应域名,当显示一个标题为“Welcome to ecs-02”的页面,说明本次访问请求被ALB实例转发到弹性云服务器"ecs-02"。
用户在实际使用时,应该根据自身业务和应用场景选择合适的配置方式和策略,以实现负载均衡、扩展性和高可用性等目标。