Effets secondaires courants de configurations incorrectes de la vérification de l'état d'équilibreur de charge
Découvrez les effets secondaires courants associés à une mauvaise configuration des vérifications de l'état de l'équilibreur de charge.
Vous trouverez ci-après les effets secondaires courants d'une configuration incorrecte de la vérification de l'état, qui peuvent être utilisés pour résoudre les problèmes.
-
Port incorrect
Dans ce scénario, tous les serveurs back-end sont signalés comme étant en mauvais état. Si les serveurs back-end ne présentent aucun problème, vous avez peut-être commis une erreur lors de la définition du port. Le port doit être à l'écoute et autoriser le trafic sur le back-end.
Erreur de journalisation OCI :
errno:EHOSTUNREACH, syscall:connect
-
Chemin incorrect
Dans ce scénario, tous les serveurs back-end sont signalés comme étant en mauvais état. Si les serveurs back-end ne présentent aucun problème, vous avez peut-être commis une erreur lors de la définition du chemin de la vérification de l'état HTTP, qui doit correspondre à une véritable application sur le back-end. Dans ce scénario, vous pouvez vous servir de l'utilitaire
curl
pour effectuer un test à partir d'un système du même réseau. Par exemple :$ curl -i http://backend_ip_address/health
Vous recevez le code de statut configuré dans la réponse Erreur de journalisation OCI :
"msg":"invalid statusCode","statusCode":404,"expected":"200".
-
Protocole incorrect
Dans ce scénario, tous les serveurs back-end sont signalés comme étant en mauvais état. Si les serveurs back-end ne présentent aucun problème, vous avez peut-être commis une erreur lors de la définition du protocole, qui doit correspondre au protocole qui écoute sur le back-end. Par exemple, nous prenons uniquement en charge les vérifications d'état TCP et HTTP. Si votre back-end utilise HTTPS, vous devez utiliser TCP comme protocole.
Erreur de journalisation OCI :
code:EPROTO, errno:EPROTO
-
Code statut incorrect
Dans ce scénario, tous les serveurs back-end sont signalés comme étant en mauvais état. Si les serveurs back-end ne présentent aucun problème, pour une vérification de l'état HTTP, vous avez peut-être commis une erreur lors de la définition du code de statut, qui doit correspondre au code de statut réel renvoyé par le back-end. Voici un scénario courant : un back-end renvoie un code de statut
302
alors que vous attendez un code de statut200
. Ce résultat est probablement dû au fait que le back-end vous dirige vers une page de connexion ou un autre emplacement sur le serveur. Dans ce scénario, vous pouvez corriger le back-end pour qu'il renvoie le code attendu ou utiliser le code302
dans la configuration de la vérification de l'état.Erreur de journalisation OCI :
msg:invalid statusCode, statusCode:nnn,expected:200
oùnnn
est le code de statut renvoyé. -
Modèle d'expression incorrect
Tous les serveurs back-end sont signalés comme étant en mauvais état. Si les serveurs back-end ne présentent aucun problème, vous avez peut-être commis une erreur lors de la définition d'un modèle d'expression régulière incorrect, cohérent avec le corps, ou le back-end ne renvoie pas le corps attendu. Dans ce scénario, vous pouvez modifier le back-end afin qu'il corresponde au modèle ou corriger le modèle afin qu'il corresponde au back-end. Vous trouverez ci-après des exemples de modèle spécifiques.-
Tout contenu :
.*
-
Page renvoyant la valeur
Status:OK:
-Status:OK:.*
-
Erreur de journalisation OCI :
response match result: failed
-
-
Groupes de sécurité réseau, listes de sécurité ou pare-feu locaux configurés de façon incorrecte
Tous les serveurs back-end ou certains d'entre eux sont signalés comme n'étant pas en santé. Si les serveurs back-end ne présentent aucun problème, vous avez peut-être configuré de manière incorrecte les groupes de sécurité réseau, les listes de sécurité ou les pare-feu locaux (par exemple, firewalld
, iptables
ou SELinux
). Dans ce scénario, vous pouvez vous servir de l'utilitaire curl
ou netcat
pour effectuer un test à partir d'un système appartenant au même sous-réseau et au même groupe de sécurité réseau que votre instance HTTP d'équilibreur de charge. Par exemple : $ curl -i http://backend_ip_address/health TCP
et nc -zvw3 backend_ip_address 443
.
Vous pouvez vérifier le pare-feu local à l'aide de la commande suivante : firewall-cmd --list-all --zone=public.
. Si le pare-feu ne contient pas les règles attendues, vous pouvez utiliser un ensemble de commandes tel que celui-ci pour ajouter le service (l'exemple suivant concerne le port HTTP 80) :
-
firewall-cmd --zone=public --add-service=http
-
firewall-cmd --zone=public --permanent --add-service=http