我无法正确重定向URL中非常相似的API调用请求。
我的配置如下(部分已编辑):
前端:
frontend https
bind :443 ssl crt /opt/haproxy/cert
capture request header X-TRACE len 32
log-format %ci:%cp\[%t]\ %ft\ %b/%s\ %Tq/%Tw/%Tc/%Tr/%Tt\ %ST\ %B\ %CC\ %CS\ %tsc\ %ac/%fc/%bc/%sc/%rc\ %sq/%bq\ %hr\ %hs\ %{+Q}r
reqadd X-Forwarded-Proto:\ https
use_backend foo if { path -m beg /foo }
use_backend foo-v2 if { path_sub /foo-v2 }
后端:
backend foo
option httpchk GET /foo/healthcheck HTTP/1.1\r\nHost:\ www\r\nAuthorization:\ Basic\ ...
http-check expect rstatus 200
server bar1 xx.xx.xx.xx:xxxx check inter 10s maxconn 2000
backend foo-v2
option httpchk GET /foo-v2/healthcheck HTTP/1.1\r\nHost:\ www\r\nAuthorization:\ Basic\ ...
http-check expect rstatus 200
server bar1 xx.xx.xx.xx:xxxx check inter 10s maxconn 2000
server bar2 xx.xx.xx.xx:xxxx check inter 10s maxconn 2000
如您所见,将请求彼此分离的唯一方法是在v2请求中添加-v2
。但是,所有请求(无论是否使用v2)都通过第一个后端发送,而不是在发出v2请求时与v2后端匹配。