本文介绍如何在 ALB 控制台创建和管理服务器组。
创建服务器组
创建 ALB 实例后,您需要创建服务器组并添加至少一台后端服务器用于处理客户端请求。
背景信息
监听器类型、后端通信协议与健康检查协议的对应
在创建服务器组时,您需要指定后端通信协议和健康检查协议。监听器类型、后端通信协议与健康检查协议之间存在特定的对应关系。例如,HTTP 监听器支持 HTTP 和 HTTPS 作为后端通信协议,支持 HTTP 和 TCP 作为健康检查协议。具体见下表说明。
监听器类型 | 后端通信协议 | 健康检查协议 |
---|
HTTP | HTTP、HTTPS | HTTP、TCP |
HTTPS | HTTP、HTTPS | HTTP、TCP |
HTTP/2 | HTTP、HTTPS、gRPC | HTTP、TCP |
QUIC | HTTP、HTTPS | HTTP、TCP |
gRPC
gRPC 是由 Google 开发的高性能、开源的远程过程调用(RPC)框架。gRPC 基于 HTTP/2 协议实现,利用了 HTTP/2 的多项优势,包括多路复用、头部压缩、二进制分帧、服务器推送等。此外,gRPC 使用 Protocol Buffers 作为接口定义语言(IDL)和默认的二进制序列化协议,支持跨语言、跨平台的服务通信。这些特性使 gRPC 适用于微服务架构、云原生应用、实时数据传输等场景。
使用限制
只有标准版 ALB 实例支持后端通信协议 HTTPS 和 gRPC。如需使用这些协议,请提交工单或联系客户经理进行申请。
操作步骤
登录应用型负载均衡控制台。
在左侧导航栏,单击 服务器组,进入 服务器组 页面。
在 服务器组 页面,单击 创建后端服务器组。
在 创建后端服务器组 页面,参照以下说明配置相关参数,然后单击 确定。
配置项 | 描述 |
---|
服务器组类型 | 选择创建的服务器组的类型。服务器组的类型决定了可以添加的后端服务器的类型。 - 服务器类型:只能添加 ECS 实例和已绑定 ECS 实例的辅助网卡作为后端服务器。添加的 ECS 实例和辅助网卡必须与服务器组属于同一 VPC。
- IP类型:只能添加 IP 地址作为后端服务器。您可以添加服务器组所属 VPC 中的 IP 地址。在开启“远端IP”功能且确保网络连通的情况下,您也可以添加与服务器组不同 VPC 中的 IP 地址或者本地 IDC 中的 IP 地址。
说明 如需创建 IP 类型的服务器组,请提交工单或联系客户经理进行申请。
|
名称 | 输入服务器组的名称。命名规则如下: - 必须以汉字或英文字母开头。
- 只能包含汉字、英文字母、 数字、半角句号(.)、下划线(_)和连字符(-)。
- 最多允许 128 个字符。
|
私有网络 | 选择服务器组所属的 VPC。服务器组和要关联到的 ALB 实例必须处于同一 VPC。 说明 ALB 允许您选择其他账号共享的 VPC。如需使用该功能,请提交工单或联系客户经理进行申请。 |
调度算法 | 指定调度算法。服务器组层面的调度算法也叫做负载均衡算法。负载均衡算法决定了客户端请求如何在后端服务器之间分发。 - 加权轮询(WRR):ALB 按照预设权重值生成固定的请求分配序列。在一个轮询周期内,权重越高的后端服务器接收到的请求越多。WRR 算法仅考虑后端服务器的权重,不考虑负载。该算法适用于每个请求的处理时间比较一致,但是不同后端服务器的性能存在较大差异的场景。
- 加权最小连接数(WLC):ALB 动态计算每台后端服务器的负载指标,然后将新的请求路由到负载指标最低的后端服务器。一台后端服务器的负载指标等于当前连接数除以服务器权重。WLC 算法同时考虑了后端服务器的负载和权重。该算法适用于每个请求的处理时间相差较大的场景。
- 源地址哈希(SH):来自同一源 IP 地址的请求始终被路由到同一台后端服务器。SH 算法不考虑后端服务器的权重和负载。该算法适用于需要基于源 IP 实现会话保持的场景。
|
后端通信协议 | 指定 ALB 实例与后端服务器之间通信的协议。
协议可以是 HTTP、HTTPS 或 gRPC。 说明 - 服务器组创建后,后端通信协议将无法更改。
- 只有标准版 ALB 实例支持 HTTPS 和 gRPC。
- 开启了 gRPC 的服务器组只能关联到 HTTP/2 监听器上。
- 开启了 gRPC 的服务器组只支持以下转发规则:规则中指定的转发动作为“转发至”。
|
健康检查 | 可选。选择是否开启健康检查功能。
健康检查功能默认开启。在服务器组关联到监听器后,ALB 按照指定规则对后端服务器发起健康检查请求,以监测后端服务器的健康状态。
您可以按需关闭健康检查功能。但是,如果该功能被关闭,ALB 将无法判断后端服务器的健康状态。如果有后端服务器实际处于异常状态,ALB 仍会向其转发请求。 注意 健康检查功能开启时,会存在一些默认的健康检查配置。请您对这些默认配置进行检查以确保配置符合您的预期。您也可以按需调整配置。 |
健康检查模板 | 设置健康检查模板。您可以选择已经创建的健康检查模板,也可以选择自定义健康检查。 |
健康检查协议 | 当您将健康检查模板设置为自定义健康检查时,需配置健康检查协议。
健康检查协议可以是 HTTP 或 TCP: - HTTP:ALB 向后端服务器发送 GET 或 HEAD 请求,然后根据 HTTP 响应码来判断健康检查是否成功。如果后端服务器返回“正常状态码”,则认为此次健康检查成功。
- TCP:ALB 尝试与后端服务器建立 TCP 连接,然后根据 TCP 三次握手的结果来判断健康检查是否成功。如果 TCP 三次握手成功完成,则认为此次健康检查成功。
健康检查协议不同,需要配置的其他健康检查参数也会存在差异,具体见下文“其他健康检查配置”。 |
其他健康检查配置(健康检查协议为 HTTP) | 健康检查协议为 HTTP 时,需设置以下健康检查参数: - 健康检查端口:指定 ALB 进行健康检查时使用的端口。ALB 默认使用后端服务器端口进行健康检查。您也可以指定一个不同的端口用于健康检查。
- 协议版本:指定健康检查协议的版本。协议版本包括 HTTP1.0 和 HTTP1.1。
- 健康检查方法:指定 ALB 发起健康检查请求时使用的 HTTP 请求方法。
- GET:ALB 发起 GET 请求时,后端服务器会返回 HTTP 响应头和响应体。
- HEAD:ALB 发起 HEAD 请求时,后端服务器仅返回 HTTP 响应头,不返回响应体。相比 GET 方法,这可以减少数据传输,降低后端服务器的负载。当您选择此方法时,须确保后端服务器支持 HEAD 请求。
- 健康检查域名:输入 ALB 在进行健康检查时使用的域名。取值须符合以下要求:
- 只允许英文字母、 数字、半角句号(.)和连字符(-)。
- 须至少包含一个半角句号(.),但不能以半角句号(.)作为开头和结尾。域名的每一级不能以连字符(-)开头或结尾。
- 最多允许 128 个字符。
- 必须是符合域名规范的精确域名, 如:www.test.com。暂不支持泛域名。
注意 - 协议版本是 HTTP1.0 时:如果您未指定域名,ALB 默认使用后端服务器的私网 IP 地址作为健康检查的目标地址,但健康检查请求中不会携带 Host 头部。
- 协议版本是 HTTP1.1 时:如果您未指定域名,ALB 默认使用后端服务器的私网 IP 地址作为健康检查的目标地址,并将该 IP 地址作为健康检查请求中 Host 头部的值。
- 健康检查路径:输入 ALB 在进行健康检查时使用的具体 URL 路径。默认值是
/ ,表示根目录。取值须符合以下要求:
- 必须以斜杠
/ 开头。 - 最多允许 128 个字符。
- 只允许英文字母、数字和以下特殊字符:-_ / . % ? # & =。
- 正常状态码:选择表示健康检查成功的状态码。您可以勾选以下选项中的一个或多个:2XX、3XX、4XX 和 5XX。其中,2XX 和 3XX 已默认勾选。
- 当实际响应状态码在您选择的状态码区间内时,表示健康检查成功。
- 当实际响应状态码不在您选择的状态码区间内时,表示健康检查失败。
- 举例:如果您未选择 4XX,但是后端服务器返回的状态码落在 4XX 区间内,ALB 判定此次健康检查失败。
- 响应超时:设置响应超时时间。
- 在指定时间内,如果 ALB 没有收到后端服务器的响应,则判定为响应超时、健康检查失败。
- 取值范围:1~60。默认值:2。单位:秒。
- 检测间隔:设置 ALB 向单台后端服务器发起健康检查请求的时间间隔。
- 取值范围:1~300。默认值:2。单位:秒。
- 建议您根据业务需求设置检测间隔,避免频繁的健康检查请求给后端服务器带来性能压力。
- 健康阈值:设置健康阈值,即判定后端服务器为健康所需的连续成功健康检查的次数。
- 达到这个阈值,ALB 判定异常的后端服务器已恢复,会继续将请求转发给这台后端服务器。
- 取值范围: 2~10。默认值: 3。
- 不健康阈值:设置不健康阈值,即判定后端服务器为异常所需的连续失败健康检查的次数。
- 达到这个阈值,ALB 判定后端服务器异常,将不会把请求转发给这台后端服务器。
- 取值范围: 2~10。默认值: 3。
|
其他健康检查配置(健康检查协议为 TCP) | 健康检查协议为 TCP 时,您需要设置以下健康检查参数: - 健康检查端口:指定 ALB 进行健康检查时使用的端口。ALB 默认使用后端服务器端口进行健康检查。您也可以指定一个不同的端口用于健康检查。
- 响应超时:设置响应超时时间。
- 在指定时间内,如果 ALB 没有收到后端服务器的响应,则判定为响应超时、健康检查失败。
- 取值范围:1~60。默认值:2。单位:秒。
- 检测间隔:设置 ALB 向单台后端服务器发起健康检查请求的时间间隔。
- 取值范围:1~300。默认值:2。单位:秒。
- 建议您根据业务需求设置检测间隔,避免频繁的健康检查请求给后端服务器带来性能压力。
- 健康阈值:设置健康阈值,即判定后端服务器为健康所需的连续成功健康检查的次数。
- 达到这个阈值,ALB 判定后端服务器已恢复,会继续将请求转发给这台后端服务器。
- 取值范围: 2~10。默认值: 3。
- 不健康阈值:设置不健康阈值,即判定后端服务器为异常所需的连续失败健康检查的次数。
- 达到这个阈值,ALB 判定后端服务器异常,将不会把请求转发给这台后端服务器。
- 取值范围: 2~10。默认值: 3。
|
跨AZ负载均衡 | 可选。设置服务器组层面的跨可用区负载均衡功能。该功能默认开启。
关于跨可用区负载均衡功能的详细介绍,请参见跨可用区负载均衡。 |
会话保持 | 可选。设置会话保持功能。该功能默认关闭。
在您开启会话保持功能后,ALB 会将来自同一个客户端的请求转发到同一台后端服务器。
ALB 支持以下会话保持模式: - 植入 Cookie:当客户端首次向 ALB 发送请求时,ALB 根据负载均衡算法选择一台后端服务器来处理该请求,并在返回给客户端的响应中植入 Cookie。当后续的客户端请求携带此 Cookie 时,ALB 会将请求转发给相应的后端服务器。
选择该模式时,您需要配置超时时间。超时时间决定了植入的 Cookie 在客户端浏览器中的有效时长。 - 重写 Cookie:您需要指定待重写的 Cookie 的名称。当 ALB 检测到后端服务器的响应中包含指定名称的 Cookie 时,会重写该 Cookie 的值。当后续的客户端请求携带重写后的 Cookie 时,ALB 会将请求转发给相应的后端服务器。
关于会话保持功能的更多介绍,请参见配置基于 Cookie 的会话保持。 注意 会话保持的优先级高于负载均衡算法。例如,如果您为服务器组设置了源地址哈希作为负载均衡算法,同时为其开启了会话保持功能,ALB 将忽略源地址哈希算法。该情形下: - 对于客户端发起的第一个请求,ALB 默认根据加权轮询算法来选择后端服务器。
- 该客户端发起的后续请求将始终被转发到同一台后端服务器。
如果您希望 ALB 基于源地址哈希算法将来自相同客户端的请求转发到同一台后端服务器,请勿开启会话保持。 |
描述 | 可选。输入服务器组的描述信息。 |
项目 | 为服务器组选择一个项目。项目是火山引擎提供的一种资源管理方式。基于项目,您可以对云资源进行分组管理。
如果您没有选择项目,服务器组将默认加入 default 项目。 |
标签 | 可选。为服务器组设置标签。标签用于标记资源,使您能够对资源进行分类和聚合管理。一个标签由一个标签键(Key)和一个标签值(Value)组成。
您可以直接选择已有的标签或者输入标签键和标签值。当您输入了一个标签键或者标签值之后,你还需要单击该标签键或标签值来进行确认。
设置标签时,请您注意以下事项: - 标签键和标签值只能包含汉字、英文大小写字母、数字、空格和特殊字符_.:/=+-@。
- 标签键不能以
volc: 和sys: 开头,也不能以volc: 和sys: 的任意大小写形式开头。 - 标签键和标签值区分大小写。
- 标签键不能为空,标签值可以为空。
- 单个服务器组最多可以绑定 50 个标签。一次最多可以添加 20 个标签。
- 一个服务器组绑定多个标签时,标签键不能相同。
关于如何使用标签来管理 ALB 资源的更多信息,请参见使用标签来管理ALB资源。 |
后续操作
创建完服务器组后,您可以接着执行以下操作:添加后端服务器。
删除服务器组
如果您不再需要使用某个服务器组,可以将其删除。服务器组被删除后,后端服务器与服务器组的关联关系被解除,但是后端服务器不会被删除。
前提条件
在删除一个服务器组前,请先解除与该服务器组关联的所有监听器。具体操作,请参考修改与删除转发规则。
操作步骤
- 登录应用型负载均衡控制台。
- 在左侧导航栏,单击 服务器组,进入 服务器组 页面。
- 在 服务器组 页面,找到待删除的服务器组,单击 操作 列的 删除。
- 在弹出的对话框中,确认提示信息, 然后单击 删除。
添加后端服务器
创建服务器组后,您需要在服务器组中添加后端服务器用于处理客户端请求。一个服务器组中可以添加多个后端服务器。一个后端服务器可以被添加到多个服务器组中。
添加服务器类型的后端服务器
操作步骤
登录应用型负载均衡控制台。
在左侧导航栏,单击 服务器组,进入 服务器组 页面。
在 服务器组 页面,找到待添加后端服务器的服务器组,然后单击 操作 列的 添加后端服务器。
在 选择后端服务器 页面,勾选待添加的后端服务器,然后单击 下一步:配置端口和权重。
该页面展示了与后端服务器组处于同一 VPC 的 ECS 实例。您可以使用实例名称、ID 或私网 IP 地址来搜索目标 ECS 实例。
说明
- 当前 ALB 仅支持 IPv4 后端服务器。
- 后端服务器的安全组规则必须允许来自 100.64.0.0/10 网段的流量,否则会导致客户端请求无法到达后端服务器,健康检查也会失败。更多信息,请参见配置后端服务器安全组。
- 在该页面上开启高级模式后,您可以选择 ECS 实例挂载的辅助网卡作为后端服务器。可根据实际情况选择一个或多个辅助网卡的 IP 地址。如果使用辅助网卡作为后端服务器,您需要手动配置网卡路由,以确保后端服务器能够正确响应来自客户端或 ALB 实例的请求。更多信息,请参见配置网卡路由。
在 配置端口和权重 页面,设置后端服务器的端口和权重,然后单击 确定。
如果需要批量为后端服务器配置相同的端口或权重,您可以选中这些后端服务器,单击列表下方的 设置相同权重 或 设置相同端口,然后输入一个值。
配置项 | 描述 |
---|
端口 | 配置后端服务器的端口。后端服务器使用该端口来提供服务和接收请求。取值范围为 1~65535。 |
权重 | 配置后端服务器的权重。默认值为 100。取值范围为 0~100。 - 权重决定了流量分配比例,权重越大的后端服务器接收到的请求越多。
- 单个后端服务器接收到的请求的比例 = 该后端服务器权重/该服务器组中所有后端服务器权重的总和。
- 若后端服务器的权重为 0,ALB 将不会把请求转发给该后端服务器。
- 当服务器组应用的负载均衡算法为源地址哈希时,ALB 将不再依据权重值转发请求。
|
复制 | 可选。单击 复制 来复制一个已添加的后端服务器条目。复制后,请在新的条目中输入不同的端口号。这种方式允许 ALB 将请求转发到同一后端服务器的不同端口。 |
移除 | 可选。单击 移除 来移除添加的后端服务器。 |
添加 IP 类型的后端服务器
操作步骤
登录应用型负载均衡控制台。
在左侧导航栏,单击 服务器组,进入 服务器组 页面。
在 服务器组 页面,找到待添加后端服务器的服务器组,然后单击 操作 列的 添加后端服务器。
在 添加IP地址 页面,添加 IP 地址。
该页面上展示了此服务器组所属的 VPC 的 ID 和网段。
您可以根据实际情况对添加的 IP 地址进行配置,相关参数解释请参考下表。
配置项 | 描述 |
---|
IP地址 | 输入作为后端服务器的 IP 地址。该 IP 地址必须是私网 IP 地址。 - 您可以添加服务器组所属 VPC 中的 IP 地址。如果您添加的是 ECS 实例挂载的辅助网卡的 IP 地址,您需要配置网卡路由,以确保后端服务器能够正确响应来自客户端或者 ALB 实例的请求。
- 在开启“远端IP”功能且确保网络连通的情况下,您也可以添加与服务器组不同 VPC 中的 IP 地址或者本地 IDC 中的 IP 地址。
说明 - 当前 ALB 仅支持 IPv4 后端服务器。
- 后端服务器的安全组规则必须允许来自 100.64.0.0/10 网段的流量,否则会导致客户端请求无法到达后端服务器,健康检查也会失败。更多信息,请参见配置后端服务器安全组。
|
远端IP | 配置“远端IP”功能。 - 如果您添加的 IP 地址不在服务器组所属 VPC 的网段范围内,必须开启“远端IP”功能。
- 如果您添加的 IP 地址在服务器组所属 VPC 的网段范围内,无需开启“远端IP”功能。
|
端口 | 配置后端服务器的端口。后端服务器使用该端口来提供服务和接收请求。取值范围为 1~65535。 |
权重 | 配置后端服务器的权重。默认值为 100。取值范围为 0~100。 - 权重决定了流量分配比例,权重越大的后端服务器接收到的请求越多。单个后端服务器接收到的请求的比例 = 该后端服务器权重/该服务器组中所有后端服务器权重的总和。
- 若后端服务器的权重为 0,ALB 将不会把请求转发给该后端服务器。
- 当服务器组应用的负载均衡算法为源地址哈希时,ALB 将不再依据权重值转发请求。
|
添加端口 | 可选。单击 添加端口 来添加更多端口。这种方式允许 ALB 将请求转发到同一后端服务器的不同端口。 |
移除 | 可选。单击 移除 来移除添加的后端服务器。 |
确认配置信息无误后,单击 确定。
移除后端服务器
您可以按需移除服务器组内的后端服务器。后端服务器被移除后,ALB 不再将客户端请求转发给该后端服务器。
操作步骤
- 登录应用型负载均衡控制台。
- 在左侧导航栏,单击 服务器组,进入 服务器组 页面。
- 在 服务器组 页面,单击待移除后端服务器的服务器组的 ID。
- 单击 后端服务器 页签。
- 找到待删除的后端服务器,单击 操作 列的 移除。
- 在弹出的对话框中,确认提示信息,然后单击 删除。
