我想知道是否有办法使用 haproxy 平衡目录内的流量。
我有 haproxy 平衡所有 HTTP 流量到server1
& server2
。我想要平衡所有images
目录请求到server1
例如
url: http://www.domain.com/images/image_one.jpg
url: http://www.domain.com/images/image_two.jpg
url: http://www.domain.com/images/image_three.jpg
所有这些请求都必须发送到 server1。
答案1
您可以声明一个acl
,然后执行一个条件use_backend
语句。如下所示:
frontend a-frontend-conf
# Declare an ACL using path_beg (Path Begins)
acl path_images path_beg /images
# Use backend server1 if acl condition path_images is fulfilled
use_backend server1 if path_images
backend server1
[...]
答案2
server1
另一种方法是,假设您已经为&定义了后端server2
,那么在后端进行静态服务器选择,如下所示:
frontend a-frontend-conf
# Declare an ACL using the 'Host' header
acl host_domain hdr(host) -i www.domain.com
# Use backend 'farm' if acl condition host_domain is fulfilled
use_backend farm if host_domain
backend farm
acl path_images path_beg /images
use-server server1 if path_images
server server1 1.1.1.1:80
server server2 2.2.2.2:80