Я не могу правильно перенаправить запросы вызовов API, которые очень похожи в URL.
Моя конфигурация следующая (некоторые части отредактированы):
внешний интерфейс:
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.