Load-Balancing

使用 HAProxy,僅在 ACL 中匹配根 URL

  • August 21, 2019

使用 HAProxy,我想創建以下設置:

  • 除根 (/)、/articles 和 /blogs 之外的所有請求都轉到 server1
  • 所有對 root (/)、/articles 和 /blogs 的請求都轉到 server2

我無法弄清楚如何在不依賴設置預設伺服器的情況下匹配 root,然後否定所有請求都轉到 server1 規則。

如何使用 HAProxy 表達上述內容?

正則表達式可能是解決此問題的方法,但我對正則表達式並不擅長,因此很難提出基於它的解決方案。

答案當然非常簡單。正則表達式匹配所需的 ACL^$|^/$|^/articles|^/blogs

下面是我的conf:

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

引用自:https://serverfault.com/questions/358588