在haproxy中强制使用后端的某个子集

我设置haproxy使用多个后端服务器,但希望其中之一来处理特定的请求:

backend bagend mode http balance roundrobin option httpchk GET / HTTP/1.1\r\nHost:\ www.example.com use-server app1_00 if { path_beg /frodo } use-server app1_01 if { path_beg /frodo } use-server app1_02 if { path_beg /frodo } use-server app1_03 if { path_beg /frodo } server app1_00 10.0.0.1:9100 check server app1_01 10.0.0.1:9101 check server app1_02 10.0.0.1:9102 check server app1_03 10.0.0.1:9103 check server app2_00 10.0.0.2:9100 check server app2_01 10.0.0.2:9101 check server app2_02 10.0.0.2:9102 check server app2_03 10.0.0.2:9103 check 

我的使用服务器命令是否在app1的所有4个后端之间平衡? 或者我需要以不同的方式做到这一点? 它看起来好像一切都要去app1_00

你想要做的是在前端有一个acl发送请求到基于URL的不同的后端。

 frontend shire bind *:80 mode http acl path-frodo path_beg /frodo use backend longbottom if path-frodo default_backend bagend backend longbottom mode http balance roundrobin option httpchk GET / HTTP/1.1\r\nHost:\ www.example.com server app1_00 10.0.0.1:9100 check server app1_01 10.0.0.1:9101 check server app1_02 10.0.0.1:9102 check server app1_03 10.0.0.1:9103 check backend bagend mode http balance roundrobin option httpchk GET / HTTP/1.1\r\nHost:\ www.example.com server app1_00 10.0.0.1:9100 check server app1_01 10.0.0.1:9101 check server app1_02 10.0.0.1:9102 check server app1_03 10.0.0.1:9103 check server app2_00 10.0.0.2:9100 check server app2_01 10.0.0.2:9101 check server app2_02 10.0.0.2:9102 check server app2_03 10.0.0.2:9103 check 

以/ frodo开头的所有请求将仅命中app1_00,app1_01,app1_02和app1_03。 所有其他请求将打到一切。