Haproxy
記錄 HAProxy 連接限制
我在 HAProxy 中有一些簡單的連接和連接速率限制:
# Store IPs to limit connection rate stick-table type ip size 200k expire 5m store gpc0,conn_cur,conn_rate(10s) tcp-request connection track-sc0 src # Abusers are immediately rejected tcp-request connection reject if { sc0_get_gpc0 gt 0 } # Test connection count and rate acl connabuse sc0_conn_cur gt 20 acl connkill sc0_inc_gpc0 gt 0 tcp-request connection reject if connabuse connkill acl rateabuse sc0_conn_rate gt 30 acl ratekill sc0_inc_gpc0 gt 0 tcp-request connection reject if rateabuse ratekill
不幸的是,這引起了一些問題。我想暫時停止阻止人們,但在達到這些限制時記錄時間和 IP,這樣我就可以玩弄規則,看看哪些有效,哪些無效。我怎樣才能做到這一點?
您可以添加響應標頭來指示違反規則的客戶端 IP 地址,而不是阻止濫用者。像這樣的東西:
http-request add-header X-Haproxy-Abuse %ci if connabuse http-request add-header X-Haproxy-Kill %ci if connkill
其中 %ci 代表客戶端 IP 地址,您可以記錄此處提到的任何其他參數:http: //cbonte.github.io/haproxy-dconv/configuration-1.5.html#8.2.4
比您擷取該標頭並將它們放入日誌中,如文件中所述: http: //cbonte.github.io/haproxy-dconv/configuration-1.5.html#capture%20response
capture response header X-Haproxy-Abuse 15 capture response header X-Haproxy-Kill len 15