Acontece que o problema foi o fim da linha em minhas solicitações HTTP. Eu estava enviando uma mistura de LF e CRLF. O RFC2616 requer que o HTTP / 1.1 use somente CRLF, mas também declara que servidores devem implementar uma "provisão de tolerância" . No entanto, o Apache > = 2.4.25 assume como padrão HttpProtocolOptions Strict
, o que retorna um status HTTP/1.1 400
para todos os cabeçalhos malformados.
O FreeBSD já empacotou o Apache 2.4.25 desde dezembro, mas eu assumo que o Squid estava regularizando cabeçalhos para mim porque não quebrou então. Eu acho que o HAProxy é mais laissez-fare, então a mudança do Squid para o HAProxy expôs o servidor ao meu antigo bug de firmware.
A correção correta seria reativar o microcontrolador com o firmware atualizado, mas isso é um aborrecimento. Uma solução rápida e suja é dizer ao Apache para relaxar. Adicionar HttpProtocolOptions Unsafe
a httpd.conf
é uma "correção" rápida e, pelo menos, recupera o registro de dados por enquanto.