Configuration

haproxy:我可以註釋 IP 白名單文件嗎?

  • May 28, 2020

在我的“/etc/haproxy/haproxy.cfg”文件中,我指定了一個白名單文件,其中包含允許訪問前端的 IP 地址。

frontend default-frontend
   <snip>

   tcp-request connection reject if ! { src -f /etc/haproxy/templates/ip-whitelist.txt }

   <snip>

“/etc/haproxy/templates/ip-whitelist.txt”的內容如下所示:

192.45.21.89/32
123.34.33.7/32
56.23.12.77/32
78.12.66.3/32

這很好用!直到我想清理文件並刪除不再需要訪問權限的人的 IP。

問題:是否可以在haproxy模板文件中添加註釋?

我試過這個:

192.45.21.89/32 # Dylan Reeve
123.34.33.7/32 # Jane Doe
56.23.12.77/32 # Priscilla Ahmed
78.12.66.3/32 # Sayed Salas

…返回類似於以下內容的錯誤:

[ALERT] : parsing [/etc/haproxy/haproxy.cfg:123] : 'tcp-request connection reject' :
   error detected in frontend 'default-frontend' while parsing 'if' condition : 
   '192.45.21.89/32 # Dylan Reeve' is not a valid IPv4 or IPv6 address
   at line 1 of file '/etc/haproxy/templates/ip-whitelist.txt'
[ALERT] : Error(s) found in configuration file : /etc/haproxy/haproxy.cfg
[ALERT] : Fatal errors found in configuration.

最壞的情況:我必須在另一個位置保留單獨的列表以匹配 IP 和名稱。

根據HAProxy v1.8 文件,這應該有效:

# Dylan Reeve
192.45.21.89/32
# Jane Doe
123.34.33.7/32
...

取自 1.8 文件(我也在 1.6 上這樣做過):

“-f”標誌後跟一個文件的名稱,從該文件中的所有行都將作為單獨的值讀取。如果要從多個文件載入模式,甚至可以傳遞多個“-f”參數。**空行以及以尖號 (’#’) 開頭的行將被忽略。**所有前導空格和製表符都將被刪除。如果絕對有必要插入一個以銳利開頭的有效模式,只需在它前面加上一個空格,這樣它就不會被當作註釋。

或者您可以嘗試使用HAProxy 映射,我認為這對您的案例來說完全是多餘的。

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