为应用设置路由规则(ALB)

如果您的业务请求需要分发给其他服务或者应用,您可以为应用配置网关路由功能,实现请求路由分发。本文介绍如何通过应用型负载均衡ALB为您的应用设置路由规则。

前提条件

  • SLB

  • SAE

    • 您已创建命名空间,并确保ALB与SAE命名空间处于同一地域,且绑定同一个VPC。具体操作,请参见创建命名空间

    • 您已创建应用,并确保应用类型为微服务应用。具体操作,请参见创建应用

    • 确保待配置网关路由的应用和后端接收请求的应用在同一命名空间内。

背景信息

负载均衡 SLB(Server Load Balancer)是一种流量分发服务,旨在通过将流量平衡地分配到后端多个服务器上,来扩展应用的处理能力并提升系统整体的可用性,同时消除潜在的单点故障。应用型负载均衡ALB作为SLB产品家族的一员,专门针对HTTP、HTTPS和QUIC等应用层协议提供服务。ALB不仅具备高度弹性和大规模应用层流量管理能力,还能处理复杂的业务路由需求,并与云原生服务紧密集成,成为阿里云官方推荐的云原生Ingress网关解决方案。更多信息,请参见负载均衡SLB产品家族介绍

使用场景

  • 单应用或多应用使用相同域名但存在不同路径流量转发。

  • 单应用或多应用由不同域名流量转发,即不同域名解析的访问IP地址是同一个。

网关路由配置完成后,您可以通过<域名>:<访问端口/Path>访问相应的后端服务或者应用。

创建网关路由

  1. 登录SAE控制台

  2. 在左侧导航栏,单击命名空间,在顶部菜单栏选择地域,然后在命名空间页面,单击目标命名空间名称。

  3. 在目标命名空间页面,在左侧导航栏单击网关路由,然后单击创建网关路由

  4. 创建路由页面,按照下表说明完成参数设置,然后单击保存

    配置项

    配置说明

    路由名称

    自定义路由名称。

    网络类型

    选择网络类型:

    • 公网:通过公网网关转发的请求,按照实际转发流量计费。

    • 私网:通过私网网关转发的请求不计费,仅在当前VPC内部转发。

    网关类型

    选择ALB 应用型负载均衡

    ALB 实例

    单击ALB 实例下面的下拉框,选择ALB实例,您也可以单击下拉框右侧的创建 ALB 实例,创建ALB实例。具体操作,请参见创建应用型负载均衡

    前端协议类型

    • 选择请求转发协议:

      • HTTP:适用于需要对数据内容进行识别的应用,如移动应用和小型手机游戏等。

      • HTTPS:适用于需要加密传输的应用。

    访问端口

    自定义访问端口,端口范围为0~65535。

    高级配置

    展开高级设置区域,可以设置以下参数:

    • 连接请求超时时间:设置请求后端服务器的超时时间(可以选择的范围为1~180秒)。如果后端服务器在指定时间内未响应,则会返回HTTP 504错误码。

    • 连接空闲超时时间:设置无请求时的连接时长(可以选择的范围为1~60秒)。如果在指定的空闲时间内无新的请求,负载均衡会暂时中断当前连接,直到下次请求来临时重新建立新的连接。

    • TLS安全策略:仅当前端协议类型选择为HTTPS时,才支持设置TLS安全策略。TLS安全策略包括可选的TLS协议版本和配套的加密算法套件。加密算法套件是由SSL/TLS握手期间协商的安全设置所使用的算法组合。

    • 附加HTTP头字段:选择以下特定的HTTP头部字段以获取特定的信息。

      • 开启通过X-Forwarded-For头字段获取来访者客户端IP:字段格式为X-Forwarded-For: <client-ip-address>, <proxy1>, <proxy2>, …

        默认开启X-Forwarded-For头字段。

        ALB如何获取客户端真实IP教程,请参见通过ALB获取客户端真实IP

      • 通过SLB-ID头字段获取负载均衡实例ID:字段格式为SLB-ID

      • 通过X-Forwarded-Proto头字段获取负载均衡实例的监听协议:字段格式为X-Forwarded-Proto: <originatingProtocol>

      • 通过X-Forwarded-Port头字段获取负载均衡实例的监听端口:字段格式为X-Forwarded-Port: <port>

      • 通过X-Forwarded-Client-srcport头字段获取负载均衡实例客户端的端口:字段格式为X-Forwarded-Client-srcport: <port>

    自定义转发策略

    • 域名:输入要转发的请求域名,域名不可为空

    • 访问端口:默认是上一步骤设置的访问端口,不支持设置。

    • Path:输入终端访问的路径,不可为空。

    • 后端应用:选择接收转发请求的应用,该应用须与转发请求的应用在同一个命名空间内。

    • 容器端口:设置访问后端应用的容器端口。

    说明
    • 仅适用于微服务应用和Web固定分配CPU模式的应用。

    • 在同一个负载均衡实例内,监听端口不可重复。

    • 您也可以单击+ 添加,添加同一域名下的访问端口Path后端应用容器端口

    • 您也可以单击+ 添加域名,添加其他的域名访问端口Path后端应用容器端口

    默认转发策略

      • ALB 实例:默认上面步骤选择的ALB实例,不支持设置。

      • 访问端口:默认选择上面步骤设置的访问端口,不支持设置。

      • 后端应用:选择接收转发请求的应用,该应用须与转发请求的应用在同一个命名空间内。

      • 容器端口:设置访问后端应用的容器端口。

      说明

      推荐设置默认转发策略,为所有未匹配上自定义转发策略的请求指定默认的转发策略,如果不设置会导致访问报错。

  5. 结果验证。

    • 方式一:登录负载均衡管理控制台,在ALB实例页面,查看监听是否已经配置。

    • 方式二:通过<域名>:<访问端口/Path>访问相应的服务或应用,查看是否按照已配置好的转发策略进行了转发,以验证配置是否生效。

管理路由规则

创建路由规则后,您可以在网关路由页面查看转发策略编辑删除网关路由,以及查看相关事件