Haproxy

HAProxy 使用文件中的主機設置 acl

  • May 30, 2018

我想將大約 100 多個站點從一台伺服器遷移到另一台伺服器。目前的計劃是逐漸為每個添加一個 acl,因為它們被移動以將流量引導到新伺服器。

這是一個簡化的例子

front http_frontend
 bind *:80
 acl is_new hdr_end(host) -i sub1.domain.com
 acl is_new hdr_end(host) -i sub2.domain.com
 acl is_new hdr_end(host) -i www.domain2.com
 mode http
 # etc
 use_backend web1 if is_new
 default_backend legacy1

一旦他們都被移動了,我們就會改變default_backend

有沒有辦法從另一個文件中讀取這些 acl?或者從文件中讀取域 - 也許是這樣的?

acl is_new hdr_end(host) -i /path/to/file

例如,我將所有安全證書都包括在下面,這樣就太好了!

bind *:443 ssl crt /etc/haproxy/certs.d

如果不是,這不是世界末日,它會很漂亮和整潔:)。

haproxy 中的 ACL 可以使用-f參數從文件中載入值。您可以在此處閱讀文件

例如:

acl valid-ua hdr(user-agent) -f exact-ua.lst -i -f generic-ua.lst test

“-f”標誌後跟一個文件的名稱,從該文件中的所有行都將作為單獨的值讀取。如果要從多個文件載入模式,甚至可以傳遞多個“-f”參數。空行以及以尖號 (’#’) 開頭的行將被忽略。

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