Configure o haproxy para retornar um 204 para uma determinada partida do ACL

7

Eu quero retornar um código de erro HTTP 204 se alguém tentar acessar um caminho específico no meu servidor web. Eu poderia definir um dos meus servidores da Web para retornar um erro 204 e apontar o haproxy para ele como um backend. No entanto, uma vez que nenhuma informação está sendo enviada, imaginei que isso deveria ser possível a partir do próprio haproxy. Não há necessidade de incomodar meus servidores web reais.

Eu tentei criar um back-end que gerasse o erro 204 da seguinte forma:

frontend ...
    ...
    acl is_always204 path_beg /thisone
    use_backend always204 if is_always204
    ...

backend always204
    errorfile 404 /etc/haproxy-shared/errors/204.http

O arquivo 204.http contém:

HTTP/1.0 204 No Content Cache-Control: no-cache Connection: close Content-Type: image/png

Quando inicio o haproxy, recebo este erro:

parsing [/etc/haproxy/haproxy:51] : status code 404 not handled, error customization will be ignored.

Eu acho que posso estar fazendo isso da maneira errada. Alguém pode sugerir uma maneira de forçar o haproxy a devolver um 204 para uma dada partida acl?

    
por TomOnTime 12.09.2014 / 22:13

1 resposta

1

Como mencionado nos comentários, você não pode especificar um errorfile para 404, já que o HAProxy nunca gerará um 404. Você deve usar algo como 503, que o HAProxy realmente emite e possui um arquivo de erro configurável. Seu arquivo 204 pode ser usado como está, apenas substitua 503 por 204 em sua configuração.

    
por 18.07.2015 / 17:45

Tags