Un fitxer anomenat /check.txt en un host de proxy sembla un objectiu de salut evident. La trampa és que el listener explícit de reenviament de Squid no és un lloc web corrent que serveixi l'arrel de documents d'aquest host.

Una petició a l'estil d'origen com HEAD /check.txt HTTP/1.1 omet l'objectiu absolut que s'espera per a una petició HTTP ordinària a través d'un proxy de reenviament. Segons la configuració, pot ser rebutjada o gestionada per un altre servei local. Tots dos resultats poden dir-vos menys del que suggereix el tauler.

Trieu el servei que necessiteu mantenir disponible

ComprovacióEvidència útil
Connexió TCP al listener del proxyUn procés abastable accepta aquesta connexió.
CONNECT a un objectiu controlatEl proxy accepta aquesta petició de túnel.
Recuperació HTTP a través del proxyEl camí de petició triat pot retornar una resposta esperada.

Per al tercer cas, la petició necessita un objectiu, per exemple:

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

El nom d'host és il·lustratiu. Feu servir un punt final controlat que el proxy pugui resoldre i al qual se li permeti arribar intencionadament. El http-check send d'HAProxy admet triar el mètode, l'URI, la versió i les capçaleres; configureu aquesta petició explícitament en lloc d'heretar sense canvis un exemple de servidor d'origen.

HEAD pot comprovar l'estat i les capçaleres d'una resposta. No pot validar un cos de resposta que mai no es transfereix. Si el contracte de salut requereix un marcador al cos, trieu una comprovació GET adequada i valideu aquest marcador.

Manteniu estrets el compte de comprovació i les restriccions d'origen quan hi hagi autenticació de proxy. Exemptar tot el listener d'autenticació per obtenir una marca verda canvia el servei que es protegeix.

Finalment, decidiu què ha de retirar una comprovació fallida. Una caiguda controlada de l'origen pot fer fallar alhora la comprovació de reenviament de tots els proxys. Pot ser exactament la dependència que voleu mesurar, o un motiu per mantenir la salut del listener i la disponibilitat d'extrem a extrem com a senyals separats.

Articles relacionats