使用 HAProxy,我想要创建以下设置:
- 除根 (/)、/articles 和 /blogs 之外的所有请求都转到 server1
- 所有对根 (/)、/articles 和 /blogs 的请求都转到 server2
我无法弄清楚如何在不依赖于设置默认服务器的情况下匹配根,这会否定所有请求都转到服务器 1 规则。
我如何使用 HAProxy 表达上述内容?
正则表达式可能是解决这个问题的方法,但我不擅长正则表达式,因此很难提出基于它的解决方案。
答案1
答案当然非常简单。ACL 需要正则匹配^$|^/$|^/articles|^/blogs
以下是我的配置:
global
pidfile /var/run/haproxy.pid
quiet
daemon
defaults
mode http
option httplog
option dontlognull
option http-server-close
retries 1
maxconn 1024
contimeout 15000
clitimeout 60050
srvtimeout 1200000
frontend www
bind :80
acl is_for_server2 path_reg ^$|^/$|^/articles|^/blogs
use_backend server2 if is_for_server2
default_backend server1
backend server1
option forwardfor
server server1 10.0.8.1 maxconn 1500
backend server2
option forwardfor
server server2 10.0.8.2 maxconn 1500