HaProxy 路径正则表达式未按预期工作
HaProxy path regex not working as expected
对于以下网址,我需要使用后端 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
并使用这些 url 后端 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
You can try out the regex here
问题是,所有 上面提到的 url 将转到后端 A,但我希望包含查询参数的 url 将转到后端 B。
我认为您需要 url_reg
。像这样尝试(我稍微简化了模式)
acl rule_a url_reg -i ^\/yyy\/.+\/zzz\/([a-z0-9-])+($|\/[1-4]$)
use_backend backend_a if rule_a
对于以下网址,我需要使用后端 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
并使用这些 url 后端 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
You can try out the regex here
问题是,所有 上面提到的 url 将转到后端 A,但我希望包含查询参数的 url 将转到后端 B。
我认为您需要 url_reg
。像这样尝试(我稍微简化了模式)
acl rule_a url_reg -i ^\/yyy\/.+\/zzz\/([a-z0-9-])+($|\/[1-4]$)
use_backend backend_a if rule_a