我有一个配置了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并重写请求如何转发到后端?
谢谢!