前端的HAProxy ACL发送到不同的后端

时间:2019-05-09 13:34:01

标签: reverse-proxy haproxy

我有一个配置了keepalived的高可用HAProxy负载均衡器设置。

在前端,我想设置不同的ACL,以查看发送到HAProxy的URI路径,并根据该路径将请求发送到特定的后端。

原因是我希望通过HAProxy VIP访问4对不同的Web应用程序。

我已经设法使其中一种Web应用程序能够正常工作,但是添加更多内容无法正常工作。

如果我导航到http://haproxy_ip:port/pulse,则来自后端脉冲的Web应用程序正在加载。

如果我导航到http://haproxy_ip:port/pulse_tim,则会收到404 not found错误。

通过http://ip:port/pulse均可访问后端中配置的Web应用。

frontend http_front
bind haproxy_ip:port
stats uri /haproxy?stats
acl is_pulse_uri path_beg /pulse
acl is_pulse_uri_tim path_beg /pulse_tim
use_backend pulse if is_pulse_uri
use_backend pulse_tim if is_pulse_uri_tim
default_backend http_back

backend http_back
balance roundrobin
hash-type consistent djb2
stick-table type string len 32 size 1M peers LB
stick on req.cook(JSESSIONID)
stick store-response res.cook(JSESSIONID)
server host1 xx.xx.xx.xx:xxxx check cookie host1
server host2 xx.xx.xx.xx:xxxx check cookie host2

backend pulse
server pulse ip:port check
server pulse ip:port check backup

backend pulse_tim
server pulse_tim ip:port check
server pulse_tim ip:port check backup

这是否真的不起作用,因为我的Web应用程序位于http://ip:port/pulse下,并且当我尝试匹配/ pulse_tim URI时,haproxy会将其转发到http://pulse_tim_ip:port/pulse_tim之类的后端服务器,而不是http://pulse_tim:port/pulse

如果是,如何在ACL中查找URI并重写请求如何转发到后端?

谢谢!

0 个答案:

没有答案