Um ficheiro chamado /check.txt num host de proxy parece um alvo de saúde óbvio. A armadilha é que o listener de encaminhamento explícito do Squid não é um site normal que serve a raiz de documentos desse host.

Um pedido ao estilo de origem como HEAD /check.txt HTTP/1.1 omite o alvo absoluto esperado para um pedido HTTP comum através de um proxy de encaminhamento. Conforme a configuração, pode ser rejeitado ou tratado por outro serviço local. Qualquer dos resultados pode dizer-lhe menos do que o painel sugere.

Escolha o serviço que precisa de manter disponível

VerificaçãoProva útil
Ligação TCP ao listener do proxyUm processo alcançável aceita essa ligação.
CONNECT para um alvo controladoO proxy aceita esse pedido de túnel.
Obtenção HTTP através do proxyO caminho de pedido escolhido pode devolver uma resposta esperada.

No terceiro caso, o pedido precisa de um alvo, por exemplo:

HEAD http://probe.example.internal/proxy-ready HTTP/1.1
Host: probe.example.internal

O nome do host é apenas ilustrativo. Use um endpoint controlado que o proxy consiga resolver e ao qual tenha acesso deliberadamente permitido. http-check send do HAProxy permite escolher método, URI, versão e cabeçalhos; configure esse pedido explicitamente em vez de herdar sem alterações um exemplo de servidor de origem.

O HEAD pode verificar o estado e os cabeçalhos de uma resposta. Não consegue validar um corpo de resposta que nunca é transferido. Se o contrato de saúde exigir um marcador no corpo, escolha uma verificação GET adequada e valide esse marcador.

Mantenha a conta de verificação e as restrições de origem estreitas quando há autenticação de proxy. Isentar todo o listener de autenticação para obter uma marca verde altera o serviço que está a ser protegido.

Por fim, decida o que uma verificação falhada deve remover. Uma falha controlada na origem pode fazer falhar ao mesmo tempo a verificação de encaminhamento de todos os proxies. Pode ser exatamente a dependência que quer medir, ou um motivo para manter a saúde do listener e a disponibilidade ponta a ponta como sinais separados.

Artigos relacionados