Haproxy

如何根據 URL 子字元串發出 haproxy 路由請求?

  • January 9, 2020

負載均衡器設置有兩個後端。

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

HAProxy 配置指南的第 7 節詳細介紹了 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

引用自:https://serverfault.com/questions/306968