高级流量管理
IBM Cloud® Application Load Balancer for VPC (ALB) 中提供了以下高级流量管理功能。
最大连接数
使用 "max connections
配置限制给定前端虚拟端口的最大并发连接数。 如果未配置值,那么系统将使用缺省值 2000
并发连接。 特定前端虚拟端口或所有前端虚拟端口的全系统最大并发连接数为 "15000
。
会话持久性
缺省情况下,ALB 根据配置的负载均衡方法将接收到的请求转发到后端服务器。 您可以启用会话持久性,以确保客户机在整个会话期间保持连接到同一后端服务器。
源 IP
使用此选项时,ALB 会根据连接的源 IP 在客户机与后端服务器之间创建亲缘关系。 例如,如果对端口 80 (HTTP) 启用源 IP 类型会话持久性,那么来自同一源 IP 客户机的任何后续 HTTP 连接尝试都将在同一后端服务器上持久存在。 该功能适用于所有支持的协议(HTTP、HTTPS 和 TCP)。
HTTP 保持活动
在客户机和后端服务器上都启用了 Application Load Balancer for VPC 支持 HTTP keep alive
。 负载平衡器尝试重复使用服务器端 HTTP 连接,以提高连接效率并减少延迟。
TCP 保持活动状态
Application Load Balancer for VPC 支持 TCP keep alive
。 通过此设置,负载均衡器每 5 秒向客户机和后端服务器发送 TCP-keep-alive 包。
这是一个套接字级别的包,没有任何数据发送到同级以通知其主机处于活动状态。 因此,只能在网络层看到,而不能在应用层看到。 此设置还有助于防止中间代理或防火墙断开 TCP 连接,这些中间代理或防火墙可能具有在一段时间不活动后废弃连接的策略。
连接超时数
以下超时值由 ALB 使用。 目前,只有下表中的客户机端和服务器端空闲超时值是可定制的。
名称 | 描述 | 超时 |
---|---|---|
服务器端连接尝试 | Load Balancer 可以用于建立与后端服务器的 TCP 连接的最大时段。 如果连接尝试不成功,负载平衡器会根据配置的负载平衡方法,尝试下一个可用的服务器。 | 5 秒 |
客户机端空闲连接 | 如果客户端未能正确关闭连接,负载平衡器将关闭客户端连接的最长空闲时间。 | 50 秒 (缺省值) 到 2 小时 |
服务器端空闲连接 | 负载平衡器关闭服务器端连接后的最长空闲时间(后端协议配置为 TCP)。 后端协议配置为 HTTP 时,如果负载平衡器在空闲超时窗口内未收到对 HTTP 请求的响应,就会向终端客户机返回一条错误消息。 | 50 秒 (缺省值) 到 2 小时 |
保留最终客户机 IP 地址 (仅限 HTTP/HTTPS)
Application Load Balancer for VPC可作为反向代理,终止来自客户端的传入流量。 负载平衡器使用自己的 IP 地址与后端服务器实例建立单独的连接。 对于与后端服务器的 HTTP 连接(针对前端 HTTP 或 HTTPS 连接),负载平衡器会将原始客户端 IP 地址包含在 HTTP 标头 "X-Forwarded-For
中,从而保留该地址。 对于 TCP 连接,不会保留原始客户机 IP 信息。
保留最终客户机协议 (仅限 HTTP/HTTPS)
ALB 会保留客户机用于前端 HTTP 和 HTTPS 连接的原始协议,方法是将其包含在 X-Forwarded-Proto
HTTP 头中。 这不适用于 TCP 协议,因为使用 TCP 协议时,ALB 不会查看 Layer-7 流量。
启用专用负载均衡器实施
专用负载均衡器实施会阻止创建公共负载均衡器。 这将确保只有非因特网客户机或网络环境中的客户机才能访问负载均衡器。 启用后,会对您的帐户施加限制,以防止在所有 ALB 上创建浮动 IP。
要实施专用负载均衡器实施,请打开 IBM 支持案例,并参考您是否需要变更帐户以限制浮动 IP 的创建。 在 IBM 处理更改后,您将无法再创建公共负载均衡器。
专用负载均衡器实施在启用时适用于所有区域。
HTTP/2 支持客户机连接到 HTTPS 侦听器
Application Load Balancer for VPC 使用应用层协议协商 (ALPN) 与连接到 HTTPS 侦听器的客户机进行协商,并支持 HTTP/1.1 和 HTTP/2。 如果连接到 ALB 的客户机正在使用 HTTP/2,那么 ALB 还使用 HTTP/2 作为其首选协议,并处理对后端池的请求。 否则,缺省情况下会选择 HTTP/1.1。
后端池尚不支持 HTTP/2 协议。 但是,支持 HTTP 和 HTTPS 协议。
压缩 (仅限 HTTP/HTTPS)
HTTP/HTTPS 压缩允许您使用 gzip 压缩要传输给用户的数据。
要使用 ALB 压缩传输的数据,请求头必须包含 Accept-Encoding: gzip
,其 MIME 类型必须为 text/html
,text/plain
或 text/xml
。
启用代理协议
您可以为 TCP,HTTP 和 HTTPS 侦听器以及后端池启用代理协议。 使用案例如下
用例 1: 客户机直接连接到负载均衡器

如果 ALB 直接从客户机接收流量,那么启用该侦听器的后端池的代理协议将配置负载均衡器以将代理协议头连接到要发送到该后端池的 TCP 包。
该池的所有后端成员必须支持代理协议才能使数据路径工作。 在启用此设置时,可以选择代理协议头的版本 (V 1 或 V 2)。 缺省情况下,如果未指定此设置,那么将禁用此设置。 通过此设置,后端服务器可以获取负载均衡器在代理协议头中设置的客户机 IP 和端口信息。
用例 2: 客户机连接到代理或代理链,然后使用代理协议连接到负载均衡器

如果 Application Load Balancer for VPC 正在接收来自使用代理协议的代理 (或代理链) 的流量,那么侦听器必须具有已启用的代理协议,以便可以解析代理协议头中包含的源客户机信息。 缺省情况下,此设置处于禁用状态 (如果未指定)。 由于负载均衡器可以检测代理协议头的版本并对其进行正确解析,因此您不必指定使用哪个版本的代理协议将流量发送到 ALB。
为前端侦听器启用代理协议时,到达该前端端口的所有流量都应该是代理协议流量。 如果任何连接不包含正确的代理协议头,那么将不会建立这些连接。 要将此客户机信息转发到后端服务器池,必须为该池启用代理协议。 与用例 1 类似,必须根据后端服务器配置为使用的代理协议版本来选择版本 1 或版本 2。 您还可以选择不将此客户机信息转发到后端服务器 (如果它们无法处理此信息),并且此信息将在负载均衡器上删除。