У меня есть несколько служб, которые работают на разных портах, каждый из которых использует одни и те же пути URI. Например:
New York Housing Service
127.0.0.1:8080/homes
127.0.0.1:8080/prices
Las Vegas Housing Service
127.0.0.1:8081/homes
127.0.0.1:8081/prices
Пока все нормально, но теперь мне нужно настроить haproxy для балансировки нагрузки служб. Таким образом, мне, очевидно, нужно уметь различать их для переключения контента. Я думаю, что я бы сделал, это добавить параметр в путь в ACL, чтобы различать два бэкэнда, в этом случае, имея параметр URL в ACL, за которым следуют фактические параметры пути для приложения:
frontend http
maxconn 2000
bind 0.0.0.0:5000
acl new-york path_reg -i /newyork.*
use_backend nyc-server if new-york
acl las-vegas path_reg -i /lasvegas.*
use_backend lv-server if las-vegas
backend nyc-server
server www.test.com 127.0.0.1:8080 maxconn 100
backend lv-server
server www.test.com 127.0.0.1:8081 maxconn 100
В этой настройке переход к 127.0.0.1:5000/newyork/home приведет меня к 127.0.0.1:8080/home, а 127.0.0.1:5000/lasvegas/home берет меня на 127.0.0.1:8081/home. Мои попытки до сих пор просто вернули ошибку 404. Я просматривал документацию, но я не видел ничего, полностью соответствующего моему варианту использования, поэтому любая помощь будет принята с благодарностью.
РЕДАКТИРОВАТЬ: я забыл упомянуть, что я использую haproxy 1.5. 18
РЕДАКТИРОВАТЬ2: я разместил этот вопрос на serverfault.com, так как он кажется более подходящим для этого вопроса:
https://serverfault.com/questions/1001237/haproxy-need-to-add-a-url-parameter-to-acl-to-differentiate-between-services-w
Я проголосовал за закрытие этого вопроса.