Назад | Перейти на главную страницу

Как я могу сделать запросы маршрута haproxy на основе подстрок URL?

Балансировщик нагрузки настроен с двумя внутренними компонентами.

URI запроса будет выглядеть следующим образом:

http://example.com/answers/submit
http://example.com/tag-02/answers/submit

Как я могу настроить haproxy таким образом, чтобы запрос отправлялся на тот или иной из двух бэкэндов, в зависимости от формата URI запроса? Единственная разница между запросами /tag-02/ в URI запроса.

Было бы очень полезно получить для этого конфигурационный файл haproxy с небольшими пояснениями, поскольку я новичок в haproxy.

Вы хотите использовать ACL:

backend be1 # this is your default backend
  ...
backend be2 # this is for /tag-02 requests
  ...

frontend fe
  ...
  default_backend be1
  acl url_tag02 path_beg /tag-02
  use_backend be2 if url_tag02

Раздел 7 Руководство по настройке HAProxy есть подробности о ACL, но вы должны знать магию use_backend заклинание, скрытое в разделе 4 руководства, чтобы знать, что делать с ACL.

Чтобы дать лучший пример приведенному выше ответу, ниже приведен пример конфигурации.

frontend https-in
   bind *:443 ssl crt /etc/ssl/server.pem
   mode http
   redirect scheme https if !{ ssl_fc }

   acl uri_help path_beg /help
   use_backend help if uri_help

backend help
    balance     roundrobin
    server      help yourbackendserver.com check