IBM Cloud Docs
第 7 层策略

第 7 层策略

第 7 层 (L7) 策略用于通过将其 L7 信息与 L7 规则相匹配来对流量进行分类,然后在这些规则匹配时执行特定操作。

  • 策略应用于前端应用程序端口(协议)。
  • 多个策略可以应用于同一协议。

由于一个协议可以应用多种策略,因此每个策略都关联一个优先级。

  • 将首先对优先级设置为最低的策略求值。
  • 如果该策略的关联规则与流量不匹配,那么将对优先级列表中的下一个优先级最低的策略求值。

如果流量与任何策略规则都不匹配,那么会将流量重定向到缺省池,缺省池是部署基本 Load Balancer 时配置的池。

每项策略都关联着一个动作,当策略中的所有规则与流量匹配时,该动作就会执行。

操作可以是:

  • 拒绝
  • 重定向到 HTTPS
  • 重定向到 URL
  • 重定向到池

将首先评估设置为 reject 的策略。

如果该操作设置为 REDIRECT_HTTPS,那么 HTTP 流量将重定向到 HTTPS 侦听器端口。 每个侦听器仅支持此操作的一个配置。 此操作无法配置 L7 规则,您必须使用 API 对其进行配置。 您可以通过将操作 REDIRECT_HTTPSSoftLayer_Network_LBaaS_L7Policy 服务的 addL7Policies 方法配合使用来配置 L7 策略。 redirectUrl 数据类型为 HTTPS 重定向提供 HTTPS 侦听器的通用唯一标识 (UUID)。

Redirect to https 策略在 Reject 之后进行求值。 如果此策略存在,那么任何现有 Redirect to urlRedirect to pool 策略都不适用。 此外,如果存在任何现有 Redirect to https 策略,那么无法创建任何新的 Redirect to urlRedirect to pool 策略。

如果不存在 HTTPS 重定向策略,那么将在 Reject 之后对设置为 Redirect to url 的任何策略进行求值。

最后,发送至 Redirect to pool 的政策评估排在最后。

在每个行动类别中,政策按优先级从低到高进行评估。 每个侦听器只允许一个 REDIRECT_HTTPS 操作,并且它优先于除 REJECT 以外的所有其他策略。 因此,“优先”的概念并不适用。

第 7 层策略属性

第7层属性
属性 描述
名称 策略的名称。 每个策略都必须具有唯一名称。
操作 规则匹配时要执行的操作。 这些操作是 REJECTREDIRECT_HTTPSREDIRECT_URLREDIRECT_POOLREDIRECT_HTTPS 操作仅受 API 支持。
优先级 在每个行动类别中,政策按优先级从低到高进行评估。 此字段不适用于 REDIRECT_HTTPS,因为每个侦听器只有一个此类操作适用。
重定向 URL 如果操作设置为 REDIRECT_URL,则流量将被重定向到 URL。 此外,要将流量重定向到的 HTTPS 侦听器 UUID (如果操作设置为 REDIRECT_HTTPS)。
重定向 L7 池 如果操作设置为 REDIRECT_POOL,则流量将被发送到服务器池。
协议 应用策略的前端应用程序端口。

第 7 层规则

第 7 层规则定义入局流量中要与特定值匹配的部分。

  • 对于具有 REDIRECT_HTTPS 操作的任何 L7 策略,不允许添加 L7 规则。
  • 如果入局流量与规则的指定值匹配,那么规则求值为 true
  • 第 7 层规则始终与第 7 层策略相关联。 多个第 7 层规则可以与同一个第 7 层策略相关联。
  • 如果一个策略关联了多个规则,则每个规则都将被评估为 truefalse
  • 如果与策略相关的所有规则都评估为 true,则策略操作将应用于请求。 否则,Load Balancer 会对下一个策略求值。

规则有类型,用于指示与规则匹配的第七层流量的部分。

第 7 层规则
Type 要抽取并求值的字段
HOST_NAME URL 的主机名部分(例如,api.my_company.com
FILE_TYPE URL 的结尾,表示文件类型(例如,jpg
HEADER HTTP 头中的字段
COOKIE HTTP 头中指定的 cookie
PATH URL 中主机名之后的部分(例如,/index.html

规则也有一个比较类型,用于指示如何评估规则。

比较类型
比较类型 求值类型
REGEX 将抽取的字段(例如,hostname)与提供的正则表达式相匹配
STARTS_WITH 验证抽取的字段是否以提供的字符串开头
ENDS_WITH 验证抽取的字段是否以提供的字符串结尾
CONTAINS 验证抽取的字段是否包含提供的字符串
EQUAL_TO 验证抽取的字段是否与提供的字符串完全相同

并非所有规则类型都支持所有比较类型。 例如,如果使用的是 FILE_TYPE,那么最好使用比较类型 REGEXENDS_WITH

第 7 层规则属性

第 7 层规则属性
属性 描述
Type 指定规则的类型。 规则类型可以是 HOST_NAMEFILE_TYPEHEADERCOOKIEPATH
比较类型 比较类型与规则类型、键和值结合使用,用于定义规则和流量分类。 比较类型可以是:REGEXSTARTS_WITHENDS_WITHCONTAINSEQUAL_TO
规则类型 HEADERCOOKIE 的描述键。
对于规则类型 HEADERCOOKIE,会将值与键进行比较。
反转 如果将值设置为1,则每当指定的规则不匹配时,此 L7 规则比较的值将设置为 true
第 7 层策略标识 规则连接到的策略的唯一标识。