Балансировщик нагрузки настроен с двумя внутренними компонентами.
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