文档首页/ 弹性负载均衡 ELB/ 快速入门/ 实现单个Web应用的负载均衡
更新时间:2024-11-05 GMT+08:00

实现单个Web应用的负载均衡

操作场景

弹性负载均衡可以将访问流量根据流量分配策略分发到多台后端服务器,实现业务的负载分担。同时消除了单点故障,提升了业务的可用性。

假如您有一个Web应用,由于业务量比较大,需要分发到两个弹性云服务器ECS01和ECS02进行业务负载,可以参考本文快速实现。

图1 单个应用负载分发架构图

操作流程

配置流程如图2所示:

图2 弹性负载均衡负载单个业务

操作步骤

说明

准备工作

使用云服务前,您需要注册华为账号并开通华为云、完成实名认证、为账户充值。

步骤一:创建VPC和ECS

  • 创建一个IPv4网段的VPC,并从VPC中划分一个子网。

    VPC的IPv4网段:192.168.0.0/16,子网IPv4网段:192.168.0.0/24

  • 基于已有的VPC和子网,购买两个ECS实例。

步骤二:搭建后端服务

在两个ECS实例上分别部署Nginx,使访问ECS01时返回标题为“Welcome to ELB test page one!”的页面,访问ECS02时返回标题为“Welcome to ELB test page two!”的页面。

步骤三:新建负载均衡器

创建一个弹性规格的ELB实例,用于接收来自客户端的请求并将请求分发至后端服务器。

步骤四:配置安全组规则

后端服务器的安全组规则配置放通源地址为ELB后端子网所属网段。

步骤五:添加监听器

为ELB实例配置监听器,监听器接收客户端请求并将请求分发至后端服务器组内的服务器。

步骤六:验证业务

访问ELB实例对应的域名,验证是否实现访问到不同的后端服务器。

准备工作

在使用弹性负载均衡服务前,您需要注册华为账号并开通华为云、完成实名认证、为账户充值。

步骤一:创建VPC和ECS

您需要根据业务需求规划ELB实例的区域,创建VPC和后端服务器ECS实例等。确保ECS实例的可用区和ELB实例的可用区相同,并且ECS实例与ELB实例属于同一个VPC。

  1. 创建VPC。

    本示例中的VPC相关配置如下所示,仅供参考,更多详细设置请参考创建VPC

    图3 VPC的基本信息
    图4 VPC的子网设置
  2. 创建两台ECS。

    本示例中的ECS相关配置仅供参考,更多详细设置请参考快速创建ECS

步骤二:搭建后端服务

在ECS实例上部署Nginx,编辑HTML页面,使访问ECS01时返回一个标题为“Welcome to ELB test page one!”的页面,访问ECS02时返回一个标题为“Welcome to ELB test page two!”的页面。

  1. 登录弹性云服务器
  2. 安装nginx。

    此处以CentOS 7.6版本的操作系统为例。

  3. 修改ECS01的html页面。

    Nginx的默认根目录是“/usr/share/nginx/html”,修改“index.html”页面,用来标识到ECS01的访问。

  4. 参考步骤3修改实例ECS02的“index.html”页面,用“page two”来标识到ECS02的访问。
  5. 使用浏览器分别访问“http://ECS01的EIP地址”和“http://ECS02的EIP地址”,验证nginx服务。

    如果页面显示修改后的html页面,说明nginx部署成功。

    • ECS01的html页面:
      图6 ECS01的nginx部署成功页面
    • ECS02的html页面:
      图7 ECS02的nginx部署成功页面

步骤三:新建负载均衡器

在当前场景中,ELB需要创建并绑定弹性公网IP 。ELB绑定EIP仅作为本次示例中通过ELB访问后端业务所需,用户实际使用时,需要根据自身业务规划确定ELB是否绑定EIP。

  1. 进入购买弹性负载均衡页面
  2. 在“购买弹性负载均衡器”界面,根据界面提示选择负载均衡器的基础配置。
    本示例中的基础配置参数如图8所示。
    图8 负载均衡器的基础配置
  3. 选定负载均衡器的基础配置后,负载均衡器的实例规格本文选择“弹性规格” ,如图9所示。
    图9 负载均衡器的实例规格
  4. 选定负载均衡器的基础配置后,请根据界面提示选择负载均衡器的网络配置和弹性公网IP,配置参数如图10所示。
    图10 负载均衡器的网络配置
  5. 您可以单击,展开折叠的高级配置区域,为负载均衡器添加描述和标签,本文保持默认设置。
  6. 单击“立即购买”。
  7. 确认配置信息,单击“去支付”。
  8. 创建完成后,在“负载均衡器”界面,选择对应的区域即可看到新建的负载均衡器。

步骤四:配置安全组规则

为了确保负载均衡器与后端服务器进行正常通信和健康检查正常,添加后端服务器后必须检查后端服务器所在的安全组规则和后端服务器所在子网的网络ACL规则。

  • 后端服务器的安全组规则必须添加允许源地址为ELB后端子网所属网段的入方向规则,以确保健康检查请求和业务请求可以访问后端服务器。默认情况下,ELB后端子网与ELB所在子网一致。
  • 网络ACL为子网级别的可选安全层,若后端服务器的子网关联了网络ACL规则,后端服务器的子网网络ACL规则必须添加允许源地址为ELB后端子网所属网段的入方向规则。

配置安全组与网络ACL规则详情请参见后端服务器配置安全组(独享型)

本示例添加的安全组放通规则请见表1

表1 放通后端服务器的安全组

方向

策略

类型

协议端口

源地址/目的地址

描述

入方向

允许

IPv4

TCP: 80

源地址:192.168.0.0/24

用于外部请求访问ECS,允许流量流入安全组内的ECS。

出方向

允许

IPv4

全部

目的地址:0.0.0.0/0

用于安全组内ECS访问外部,允许流量从安全组内ECS流出。

步骤五:添加监听器

负载均衡监听器通过指定的协议和端口进行流量转发。同时监听器将根据健康检查的配置自动检查其后端服务器的运行状况。如果发现某台服务器运行不正常,则会停止向该服务器发送流量,并重新将流量发送至正常运行的服务器。

  1. 在弹性负载均衡列表页,单击需要添加监听器的负载均衡名称“elb-test”。
  2. 单击“添加监听器”,配置监听器参数参见表2
    表2 独享型负载均衡配置监听器参数说明

    参数

    示例

    说明

    名称

    listener

    监听器名称。

    前端协议

    HTTP

    客户端与负载均衡监听器建立流量分发连接的协议。

    前端端口

    80

    客户端与负载均衡监听器建立流量分发连接的端口。

    重定向

    -

    用于将HTTP监听的流量转发到HTTPS监听器。

    本文默认关闭。

    访问控制

    允许所有IP访问

    支持对特定IP地址的访问请求进行控制,更多信息请参见访问控制策略

    获取客户端IP

    -

    后端服务器可以获取到客户端的真实IP地址。

    独享型负载均衡默认开启此功能,且不可关闭。

    高级转发策略

    -

    开启高级转发策略功能之后,支持更为丰富的转发规则和转发动作。

    本文保持默认开启。

  3. 保持“高级配置”参数默认取值不变,单击“下一步:配置后端分配策略”,选择“新创建”后端服务器组。

    参数“分配策略类型”选择“加权轮询算法”,其他参数保持默认选项。

  4. 单击“下一步:添加后端服务器”,添加后端服务器。
    • 后端服务器需勾选“ECS01”和“ECS02”。
    • 业务端口:业务所使用的端口,示例为“80”。
  5. 为后端服务器组配置健康检查参数,本文保持默认健康检查参数设置不变。
  6. 单击“下一步:确认配置”,确认无误后,单击“提交”。

步骤六:验证业务

负载均衡实例配置完成后,可通过访问ELB实例对应的域名,验证是否实现访问到不同的后端服务器。

  1. 修改本地PC的“C:\Windows\System32\drivers\etc\hosts”文件,将域名映射到创建的ELB实例的EIP上。
    ELB实例的EIP请在负载均衡器的基本信息界面查看。
    图11 本地PC的hosts文件
  2. 打开“开始”菜单,输入cmd命令,打开命令行窗口。
  3. 执行以下命令测试域名映射ELB实例的EIP是否成功。
    ping www.example.com

    如果有回复数据包,则说明域名映射成功。

  4. 使用浏览器访问“http://www.example.com”。
    显示如下页面,说明本次访问请求被ELB实例转发到弹性云服务器"ECS01","ECS01"正常处理请求并返回请求的页面。
    图12 访问到ECS01
  5. 再次使用浏览器访问“http://www.example.com”。
    显示如下页面,说明本次访问请求被ELB实例转发到弹性云服务器"ECS02","ECS02"正常处理请求并返回请求的页面。
    图13 访问到ECS02