虚拟服务器规则名,配置第 7 层虚拟服务器

本文详细介绍了负载均衡器中支持的REGEX匹配类型,包括PCRE风格的正则表达式限制,如命名捕获组、字符限制、后向引用等。通过实例演示如何在URI重写中使用这些规则,并列举了内置变量和常见限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

负载平衡器规则支持 REGEX 匹配类型。支持 PCRE 样式 REGEX 模式,但高级用例存在一些限制。在匹配条件中使用 REGEX 时,支持已命名捕获组。REGEX 限制包括:

不支持字符并集和交集。例如,不要使用 [a-z[0-9]] 和 [a-z&&[aeiou]],而要相应使用 [a-z0-9] 和 [aeiou]。

仅支持 9 个向后引用,可以使用 \1 到 \9 来引用它们。

请使用 \0dd 格式来匹配八进制数字,而不要使用 \ddd 格式。

顶层级别不支持嵌入式标记,嵌入式标记仅在组中受支持。例如,不要使用“Case (?i:s)ensitive”,而要使用“Case ((?i:s)ensitive)”。

不支持预处理操作 \l、\u、\L 和 \U。 其中 \l 是将下一字符变为小写,\u 是将下一字符变为大写,\L 将后续直至 \E 的字符变为小写,\U 则将后续直至 \E 的字符变为大写。

不支持 (?(condition)X)、(?{code})、(??{Code}) 和 (?#comment)。

不支持预定义的 Unicode 字符类 \X

不支持对 Unicode 字符使用已命名字符构造。例如,不要使用 \N{name},而要使用 \u2018。

在匹配条件中使用 REGEX 时,支持已命名捕获组。例如,可以使用 REGEX 匹配模式 /news/(?\d+)-(?\d+)-(?\d+)/(?.*) 来匹配类似于 /news/2018-06-15/news1234.html 的 URI。

然后按如下所示设置变量:$year = "2018" $month = "06" $day = "15" $article = "news1234.html"。设置变量后,可以在负载平衡器规则操作中使用这些变量。例如,可以使用匹配的变量来重写 URI,例如 /news.py?year=$year&month=$month&day=$day&article=$article。该 URI 随后重写为 /news.py?year=2018&month=06&day=15&article=news1234.html。

重写操作可以使用已命名捕获组和内置变量的组合。例如,URI 可以重写为 /news.py?year=$year&month=$month&day=$day&article=$article&user_ip=$_remote_addr。该示例 URI 随后重写为 /news.py?year=2018&month=06&day=15&article=news1234.html&user_ip=1.1.1.1。

注: 对于已命名捕获组,名称不能以字符 _ 开头。除了已命名捕获组之外,还可以在重写操作中使用以下内置变量。所有内置变量的名称均以 _ 开头。

$_args - 请求中的参数

$_cookie_ - Cookie 的值

$_host - 按优先级顺序,请求行中的主机名,或者“Host”请求标头字段中的主机名或与请求匹配的服务器名称

$_hostname - 主机名

$_http_ - 任意请求标头字段, 是字段名称,该字段名称将转换为小写,并且其中的短划线将替换为下划线

$_https - 如果连接在 SSL 模式下工作,为 "on";否则为 ""

$_is_args - 如果请求行包含参数,为 "?";否则为 ""

$_query_string - 与 $_args 相同

$_remote_addr - 客户端地址

$_remote_port - 客户端端口

$_request_uri - 完整的原始请求 URI(包含参数)

$_scheme - 请求方案“http”或“https”

$_server_addr - 接受请求的服务器的地址

$_server_name - 接受请求的服务器的名称

$_server_port - 接受请求的服务器的端口

$_server_protocol - 请求协议,通常为“HTTP/1.0”或“HTTP/1.1”

$_ssl_client_cert - 为已建立的 SSL 连接返回 PEM 格式的客户端证书,证书中除第一行以外的每一行开头均附加制表符字符

$_ssl_server_name - 通过 SNI 返回请求的服务器名称

$_uri - 请求中的 URI 路径

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值