负载均衡的后端服务器可根据业务需求设置为对等或不对等两种模式。如果后端不对等,可以通过自定义转发策略来进行更高级转发控制。

在转发策略支持配置转发规则重写规则

转发规则

通过配置转发规则,可以将来自不同域名或者不同 URL 的请求转发到不同的后端服务器组处理。转发规则包括规则类型及规则内容:

规则类型:目前,平台支持按域名转发按 URL 转发按源地址转发按 HTTP Header 转发四种规则类型,您可以根据使用场景配置不同类型的转发规则。

规则内容:规则内容表示需要匹配的请求值,符合该规则内容,则转发至指定的目标后端。

规则类型 适用场景 规则内容说明 取值示例

按域名转发

为多个域名提供负载均衡服务,后端服务器根据域名分组管理。

  • 支持精确域名及泛域名。

  • 取值为正则表达式。

  • 多个域名之间通过空格分割,表示匹配任意一条即可。

  • ^www.example.com$

  • ^example.com$

按 URL 转发

统一服务入口下,通过不同的 URL 区分不同的子服务,后端服务器根据 URL 分组管理。

  • 取值为正则表达式。

  • 多个 URL 可通过空格分割,表示匹配任意一条即可。

  • ^/static

  • .css$

按源地址转发

将重要/特殊客户网段的请求分配给专用服务器。

支持 IP 地址或网段。

  • 1.1.1.1

  • 1.1.1.0/24

按 HTTP Header 转发

针对不同的浏览器或不同终端提供差异化的服务

  • 取值为正则表达式。

  • 多个值可通过空格分割,表示匹配任意一条即可。

Mozilla Chrome firefox

重写规则

通过配置重写规则,可以在请求转发给目标后端服务之前,修改原始请求的路径(Path)和主机域(Host)。目前,系统支持按路径重写。

重写规则固定表达式:%[path,regsub(xx,yy,i)]

规则说明:

  • xx, yy可修改外,其余部分不能修改。

  • 表达式中不能含有空格,xx, yy的取值中也不能有空格。

  • path 为固定值,不可修改,%[path]表示获取请求的路径。

  • regsub(xx,yy,i) 表示对求值结果做转换,将路径中的第一个匹配到 xx替换成 yyi表示不区分大小写。

例如:

http://myhomer.vip/test 希望经过 URL 重写后,可以变成 http://myhomer.vip/tset,则可以添加重写规则: %[path,regsub(test,tset,i)]

优先级说明:

优先级决定了规则的执行顺序。

  • 优先级值越小,越先执行。

  • 优先级相同,则按照规则添加的顺序依次执行。

  • 多条重写规则时,按照优先级,上一条规则重写成功的输出,就是下一条重写的输入。

限制说明

  • 仅 HTTP/HTTPS/SSL 监听器支持配置自定义转发策略。

  • 在转发策略里,凡是支持正则表达式的地方,都是指的 PCRE(即 Perl-compatible-regular-expression)。

  • 如果要匹配正则表达式的元字符,如:(,),[,],*,+,{,},^,$ 等符号,需要加 \ 进行转义。

  • 匹配除换行符之外的所有字符,包括元字符。