You should simply disable the anti-dos protection to check the difference.
Also, I can recommend you to enable the stats socket in the global config,
so that you can inspect your tables or even delete entries :

global
        stats socket /var/run/haproxy.sock level admin
        stats timeout 1d

Then from the command line :

$ socat readline /var/run/haproxy.sock
prompt
show table
show table mySite-webfarm
clear table mySite-webfarm key 192.168.0.1
Will try this
etc...

Also, I think that what you're experiencing is that your block levels
are too low and that once an IP is blocked, it remains blocked because
the user continues to try to access the site.
That's fairly impossible, why would static be missing then? No rate limit on requests to static
  Also, keep in mind that
the "use_backend" rules are processed last (I should add a warning to
remind about that when they're placed before tcp-request).

I would personally simplify your config like this (it does not need
to track two separate counters anymore) :

      stick-table type ip size 1m expire 5m store gpc0,conn_rate(10s)

      acl source_is_abuser   src_get_gpc0 gt 0
      tcp-request connection track-sc1 src if ! source_is_abuser
      acl conn_rate_abuse    sc1_conn_rate gt 30
      acl mark_as_abuser     sc1_inc_gpc0 gt 0
      use_backend ease-up    if source_is_abuser
      use_backend ease-up    if conn_rate_abuse mark_as_abuser

Regards,
Willy

Thank you,
Joe

Reply via email to