HAProxy – 根据URI转发到不同的Web服务器

我有一个具有以下configuration的HTTP服务器场:

listen webfarm 10.254.23.225:80 mode http balance roundrobin cookie SERVERID insert option httpclose option forwardfor option httpchk HEAD /check.txt HTTP/1.0 server webA 10.254.23.4:80 cookie A check server webB 10.248.23.128:80 cookie B check 

我想添加一些选项,将一个特定的URI(即/特殊)的所有请求转发到第三个Web服务器。 我应该怎么做?

这里是我写的基于主机头的负载平衡的博客文章:

http://www.mattbeckman.com/2009/09/18/using-the-acl-in-haproxy-for-load-balancing-named-virtual-hosts/

如果你想匹配一个URI或目录,我会build议使用path_beg,而不是hdr_end在该页面上提供的示例中使用。 下面是你如何使用你的configuration来做这个事情的例子:

 frontend http-in bind 10.254.23.225:80 acl has_special_uri path_beg /special use_backend special_server if has_special_uri default_backend webfarm backend webfarm balance roundrobin cookie SERVERID insert option httpchk HEAD /check.txt HTTP/1.0 option httpclose option forwardfor server webA 10.254.23.4:80 cookie webA check server webB 10.248.23.128:80 cookie webB check backend special_server balance roundrobin cookie SERVERID insert option httpchk HEAD /check.txt HTTP/1.0 option httpclose option forwardfor server webC 10.0.0.1:80 cookie webC check 

希望有所帮助!