负载均衡器设置有两个后端。
请求 URI 将如下所示:
http://example.com/answers/submit
http://example.com/tag-02/answers/submit
如何配置 haproxy,以便根据请求 URI 的格式将请求发送到两个后端中的一个或另一个?请求之间的唯一区别在于/tag-02/
请求 URI。
由于我是 haproxy 的新手,因此如果能提供一个带有一些解释的 haproxy 配置文件就更好了。
答案1
你想使用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。
答案2
为了给上面的答案提供更好的例子,下面是一个配置示例。
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