Contrôles de santé HAProxy pour un proxy de transfert Squid
Construisez un contrôle de santé HAProxy qui parle à un proxy de transfert et distinguez l'accessibilité de l'écouteur, l'acceptation de CONNECT et la récupération depuis l'origine.
Un fichier nommé /check.txt sur un hôte proxy semble une cible de santé évidente. Le piège est que l'écouteur de transfert explicite de Squid n'est pas un site web ordinaire qui servirait la racine des documents de cet hôte.
Une requête de style origine comme HEAD /check.txt HTTP/1.1 omet la cible absolue attendue pour une requête HTTP ordinaire via un proxy de transfert. Selon la configuration, elle peut être rejetée ou traitée par un autre service local. Les deux résultats peuvent vous en dire moins que ce que suggère le tableau de bord.
Choisissez le service que vous devez garder disponible
| Contrôle | Preuve utile |
|---|---|
| Connexion TCP à l'écouteur du proxy | Un processus joignable accepte cette connexion. |
| CONNECT vers une cible contrôlée | Le proxy accepte cette requête de tunnel. |
| Récupération HTTP via le proxy | Le chemin de requête choisi peut renvoyer une réponse attendue. |
Pour le troisième cas, la requête a besoin d'une cible, par exemple :
HEAD http://probe.example.internal/proxy-ready HTTP/1.1
Host: probe.example.internal
Le nom d'hôte n'est qu'illustratif. Utilisez un point de terminaison contrôlé que le proxy peut résoudre et qu'il est délibérément autorisé à joindre. http-check send de HAProxy permet de choisir la méthode, l'URI, la version et les en-têtes ; configurez cette requête explicitement au lieu d'hériter tel quel d'un exemple de serveur d'origine.
HEAD peut vérifier un statut de réponse et des en-têtes. Il ne peut pas valider un corps de réponse qui n'est jamais transféré. Si le contrat de santé exige un marqueur dans le corps, choisissez un contrôle GET adapté et validez ce marqueur.
Gardez le compte de contrôle et les restrictions de source étroits lorsque l'authentification proxy est en jeu. Exempter tout l'écouteur de l'authentification pour obtenir une coche verte change le service qui est protégé.
Enfin, décidez ce qu'un contrôle en échec doit retirer. Une panne d'origine contrôlée peut faire échouer simultanément le contrôle de transfert de tous les proxys. C'est peut-être exactement la dépendance que vous voulez mesurer, ou une raison de garder la santé de l'écouteur et la disponibilité de bout en bout comme des signaux séparés.