如何根据 URL 子字符串发出 haproxy 路由请求?

如何根据 URL 子字符串发出 haproxy 路由请求?

负载均衡器设置有两个后端。

请求 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

相关内容