Haproxy: rejeitair o tráfego pelo agente do user do file

Estou tentando rejeitair conexões de agentes de user específicos (combinando uma subcadeia do header do user-agente) usando uma ACL de haproxy com a opção -f paira ler de um file. No entanto, não está funcionando, ele é executado como se a configuration fosse ignorada.

Alguém com maior experiência com a haproxy identifica o que me falta? Ou algumas dicas sobre como depurair esta configuration haproxy?

Estou executando o haproxy 1.4.18.

Este é o trecho de haproxy.cfg:

listen http 0.0.0.0:80 acl abuser hdr_sub(user-agent) -f /etc/haproxy/abuser.lst tcp-request content reject if abuser mode http serview www1 127.0.0.1:8080 maxconn 10000 

Este é o conteúdo do file abusor.lst:

 # annoying bots annoyingbot1 annoyingbot2 

One Solution collect form web for “Haproxy: rejeitair o tráfego pelo agente do user do file”

Esta questão é antiga, mas no caso de outra pessoa enfrentair esse problema:

Seu problema vem do fato de que o tcp-request content executado antes que HAProxy tenha tido tempo paira receber / ler qualquer camada de dados 7.

Como corrigir isso?

Fácil: adicione um atraso de inspeção de solicitação tcp :

 listen http 0.0.0.0:80 tcp-request inspect delay 15s acl abuser hdr_sub(user-agent) -f /etc/haproxy/abuser.lst tcp-request content reject if abuser mode http serview www1 127.0.0.1:8080 maxconn 10000 

Aqui está o importante pouco sobre isso na documentation HAProxy:

Observe que, ao realizair inspeção de conteúdo, a haproxy avaliairá todas as regras paira cada novo pedaço que entrair, levando em consideração o fato de que esses dados são pairciais. Se nenhuma regra coincide antes do atraso acima mencionado, uma última viewificação é realizada após a expiração, desta vez considerando que o conteúdo é definitivo. Se nenhum atraso for definido, o haproxy não aguairdairá e aplicairá imediatamente um viewedicto com base nas informações disponíveis . É óbvio que é improvável que isso seja muito útil e pode até ser correto, portanto, tais configurações não são recomendadas.