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

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

操作场景

弹性负载均衡可以配置基于域名和URL的转发策略,将来自不同域名或者不同URL的请求转发到不同的后端服务器组处理。

假如您有两个应用,需要分别部署在两个弹性云服务器上ECS01和ECS02上,对外提供同一个访问域名,可以根据域名下不同的URL(/ELB01/和/ELB02/)来决定最终访问的应用。

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

操作流程

配置流程如图2所示:

图2 弹性负载均衡负载多个应用

操作步骤

说明

准备工作

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

步骤一:创建VPC和ECS

  • 创建一个IPv4网段的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实例配置HTTP监听器,监听器接收客户端请求并将请求分发至后端服务器内的服务器。

步骤六:添加转发策略

在HTTP监听器上配置基于域名和URL的转发策略,监听器根据转发策略转发请求至不同的后端服务器组。

步骤七:验证业务

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

准备工作

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

步骤一:创建VPC和ECS

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

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

图3 VPC的基本信息
图4 VPC的子网设置

步骤二:搭建后端服务

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

  1. 登录弹性云服务器
  2. 安装nginx。
  3. 修改ECS实例ECS01的html页面。

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

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

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

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

步骤三:新建负载均衡器

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

  1. 在管理控制台左上角单击图标,选择区域和项目。

    区域和项目选择与使用的弹性云服务器保持一致。

  2. 单击页面左上角的,选择“网络 > 弹性负载均衡”。
  3. 在“负载均衡器”界面单击“购买弹性负载均衡器”。根据界面提示选择负载均衡器的基础配置,配置参数如图8所示。
    图8 负载均衡器的基础配置
  4. 选定负载均衡器的基础配置后,请根据界面提示选择负载均衡器的网络配置,配置参数如图9所示。
    图9 负载均衡器的网络配置
  5. 单击“立即购买”。
  6. 确认配置信息,单击“去支付”。
  7. 创建完成后,在“负载均衡器”界面,选择对应的区域即可看到新建的负载均衡器。

步骤四:配置安全组规则

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

  • 后端服务器的安全组规则必须放通源地址为ELB后端子网所属网段。默认情况下,ELB后端子网与ELB所在子网一致。
  • 网络ACL为子网级别的可选安全层,若ELB的后端子网关联了网络ACL规则,网络ACL规则必须配置允许源地址为ELB后端子网所属网段。

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

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

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

方向

策略

类型

协议端口

源地址/目的地址

描述

入方向

允许

IPv4

TCP: 80

源地址:192.168.0.0/24

后端服务器的安全组放通后端子网网段的健康检查端口。

出方向

允许

IPv4

全部

目的地址:0.0.0.0/0

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

步骤五:添加监听器

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

  1. 登录管理控制台。
  2. 在管理控制台左上角单击图标,选择区域和项目。
  3. 单击页面左上角的,选择“网络 > 弹性负载均衡”。
  4. 在“负载均衡器”界面,单击需要添加监听器的负载均衡名称“elb-test”。
  5. 单击“添加监听器”,配置监听器参数参见表2
    表2 独享型负载均衡配置监听器参数说明

    参数

    示例

    说明

    名称

    listener

    监听器名称。

    前端协议

    HTTP

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

    前端端口

    80

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

    重定向

    -

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

    本文默认关闭。

    访问控制

    允许所有IP访问

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

    获取客户端IP

    -

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

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

    高级转发策略

    -

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

    本文保持默认开启。

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

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

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

步骤六:添加转发策略

本文以负载均衡器转发客户端的HTTP请求配置为例。在HTTP监听器上配置基于域名和URL的转发策略,将来自域名“www.example.com”+“/ELB01/”URL的请求转发到ECS“ELB01”所在的后端服务器组处理,将来自域名 “www.example.com”+“/ELB02/”URL的请求转发到ECS“ELB02”所在的后端服务器组处理。如下图所示:
图10 数据转发示意图
  1. 在新添加的监听器下,单击“添加/编辑转发策略”,配置转发策略。
    • 名称:转发策略的名称,示例为“forwarding_policy-ELB01”。
    • 域名:触发转发的域名,仅支持精确域名。示例为“www.example.com”。
    • URL:触发转发的URL,示例为“/ELB01/”。
    • URL匹配规则:匹配的优先级为“精确匹配 > 前缀匹配 > 正则匹配”,示例为“精确匹配”。
    • 动作:选择“转发至后端服务器组”。
    • 后端服务器组:选择“创建后端服务器组”。
      图11 配置转发策略
  2. 添加后端服务器组和开启健康检查,单击“完成”。
    • 后端服务组
      • 名称:后端服务器组名称,示例为“server_group-ELB01”。
      • 分配策略类型:负载均衡采用的算法,示例为“加权轮询算法”。
    • 开启健康检查,保持默认参数配置不变。
  3. 在“后端服务器组”页签,单击“添加云服务器”。
  4. 勾选需要添加的云服务器,设置业务端口,单击“完成”。
    • 云服务器勾选“ECS01”。
    • 业务端口:业务所使用的端口,示例为“80”。
  5. 重复执行1~4,添加另一条转发策略、创建后端服务器组,并添加ECS02。

步骤七:验证业务

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

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

    ping www.example.com

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

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

    "ELB01/"表示访问的是名为“ELB01”的默认目录,"ELB01"表示访问的是名为“ELB01”的文件。所以,此处"ELB01"后面的“/”符号必须保留。

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

相关文档