regex - HaProxy 路径正则表达式未按预期工作
问题描述
使用以下网址,我需要使用后端 A
/yyy/some-name/zzz/some-other-name
/yyy/some-name/zzz/some-other-name/1
/yyy/some-name/zzz/some-other-name/2
/yyy/some-name/zzz/some-other-name/3
/yyy/some-name/zzz/some-other-name/4
并使用这些网址后端 B
/old/yyy/some-name/zzz/some-other-name
/yyy/some-name/zzz/some-other-name/1?param=test
/yyy/some-name/zzz/some-other-name/2?param=test
我正在使用以下规则
acl rule_a path_reg -i ^\/yyy\/.+\/zzz\/([a-z]|-|[0-9])*($|\/[1-4])$
use_backend backend_a if rule_a
default_backend backend_b
问题是,上面提到的所有url 都会去后端 A,但我希望包含查询参数的那些去后端 B。
解决方案
我认为你需要一个url_reg
。像这样尝试(我已经简化了模式)
acl rule_a url_reg -i ^\/yyy\/.+\/zzz\/([a-z0-9-])+($|\/[1-4]$)
use_backend backend_a if rule_a
推荐阅读
- python - 如何从python中的目录中读取所有图像名称?
- c - For 循环比预期更早地检测到 '\0'
- react-native - Jest 测试用例因 StyleSheet.create 失败
- python - 如何获取嵌套字典列表中所有键的路径
- angular - 使用代理配置托管 Angular 应用程序
- google-app-engine - 在 Google Cloud Platform 上训练和部署我的 ML 模型
- php - 将 CSV 数据组合到 php 数组中,并带有一些无关的结果
- android - 无法将第二个应用添加到 Crashlytics
- c - 如何防止鼠标图标被更改?
- linux - 将浮动 IP 转发到内部端口