Направьте HAProxy на разные внутренние порты, которые используют один и тот же путь URI - PullRequest
0 голосов
/ 30 января 2020

У меня есть несколько служб, которые работают на разных портах, каждый из которых использует одни и те же пути 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

Я проголосовал за закрытие этого вопроса.

...