Pour quelles raisons mon équilibreur de charge Lightsail échoue-t-il à la surveillance de l’état alors que le site Web fonctionne correctement ?

Lecture de 5 minute(s)
0

J’utilise un équilibreur de charge Amazon Lightsail pour mon instance Lightsail avec une pile Bitnami. La surveillance de l’état de l’équilibreur de charge échoue même si le site Web fonctionne correctement.

Brève description

La surveillance de l’état d’un équilibreur de charge Lightsail consiste à vérifier la réponse de l’URL http://ipaddress:80/healthcheckpath. Si le code d’état est 200 OK, la surveillance de l’état a réussi. Vous ne pouvez pas personnaliser le processus de vérification des réponses dans l’équilibreur de charge Lightsail. Si votre instance applique la redirection HTTPS, l’URL http://ipaddress:80/healthcheckpath renvoie le code d’état 301 ou 302 dans la réponse au lieu du code 200 OK. Dans ce cas, la surveillance de l’état renvoie un résultat d’échec.

Le même problème peut se produire sur les instances multi-sites WordPress, car ces instances redirigent http://ipaddress:80/healthcheckpath vers http://ipaddress.nip.io/healthcheckpath par défaut.

Résolution

Remarque : Le chemin du fichier varie selon que la pile Bitnami utilise des packages système Linux natifs (approche A) ou une installation autonome (approche B).

Pour identifier le type d’installation Bitnami que vous utilisez, exécutez la commande suivante :

test ! -f "/opt/bitnami/common/bin/openssl" && echo "Approach A: Using system packages." || echo "Approach B: Self-contained installation."

Les étapes à suivre pour résoudre ce problème dépendent des conditions suivantes :

  • Vous avez configuré la redirection à l’aide des plus-ins d’application WordPress, tels que Really Simple SSL.
  • Vous avez configuré la redirection à l’aide des règles de redirection du serveur Web.
  • Vous utilisez une instance de pile multi-site WordPress.

Configuration de la redirection à l’aide des plug-ins d’application WordPress

Créez un fichier HTML à la racine du document de votre site Web. Modifiez ensuite la configuration de la surveillance de l’état de l’équilibreur de charge pour ajouter le fichier HTML en tant que fichier de surveillance de l’état. Les redirections au niveau de l’application n’affectant que les fichiers HTML qui font partie de votre application d’origine, vous devez ajouter le fichier HTML en tant que fichier de surveillance de l’état.

  1. Connectez-vous à votre instance Lightsail.

  2. Accédez à l’emplacement racine du document de votre site Web où vous stockez les fichiers du site Web :
    Dans l’approche A, la pile Bitnami indique que l’emplacement racine du document est /opt/bitnami/APPNAME/ (par exemple, /opt/bitnami/wordpress).
    Dans l’approche B, la pile Bitnami indique que l’emplacement racine du document est /opt/bitnami/apps/APPNAME/htdocs (par exemple, /opt/bitnami/apps/wordpress/htdocs).
    Dans la pile LAMP Bitnami, l’emplacement racine du document est /opt/bitnami/apache2/htdocs.

  3. Téléchargez un fichier HTML vide ou créez-en un en exécutant la commande suivante :

    touch health.html
  4. Ouvrez la console Lightsail.

  5. Choisissez Mise en réseau.

  6. Sélectionnez votre équilibreur de charge.

  7. Dans l’onglet Instances cibles, choisissez Personnaliser la surveillance de l’état.

  8. Entrez le chemin health.html, puis choisissez Enregistrer.

  9. Assurez-vous que l’URL **http://ipaddress:80/health.html ** renvoie la réponse 200 OK. Utilisez le vérificateur d’en-tête HTTP sur le site Web KeyCDN.

  10. Attendez quelques minutes, puis vérifiez si la surveillance de l’état a renvoyé un résultat de réussite.

Configuration de la redirection à l’aide des règles de redirection du serveur Web

Ajoutez une règle d’exception dans les règles de redirection du serveur Web de sorte que seuls les fichiers du site Web d’origine soient redirigés, mais pas le fichier de surveillance de l’état.

  1. Effectuez les étapes 1 à 7 de la section Configuration de la redirection à l’aide des plug-ins d’application WordPress.

  2. Ouvrez le fichier du serveur Web dans lequel vous avez ajouté les règles de redirection HTTPS, puis ajoutez la ligne suivante avant la ligne commençant par RewriteRule :

    RewriteCond expr "! %{REQUEST_URI} -strmatch '*health.html’ "

    Voici des exemples de règles de redirection :

    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteCond expr "! %{REQUEST_URI} -strmatch '*health.html’ "
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}

    Ajoutez la ligne précédente aux règles aux emplacements suivants :
    La pile Bitnami dans l’approche A : /opt/bitnami/apache2/conf/bitnami/bitnami.conf et tout fichier se terminant par -vhost.conf dans le répertoire /opt/bitnami/apache2/conf/vhosts/.
    La pile Bitnami dans l’approche B : /opt/bitnami/apache2/conf/bitnami/bitnami.conf.

  3. Redémarrez le service Web :

    sudo /opt/bitnami/ctlscript.sh restart
  4. Assurez-vous que l’URL http://ipaddress:80/health.html renvoie la réponse 200 OK. Utilisez ce vérificateur d’en-tête HTTP sur le site Web KeyCDN.

  5. Attendez quelques minutes, puis vérifiez si la surveillance de l’état a renvoyé un résultat de réussite.

Utilisation d’une instance de pile multi-site WordPress

Pour résoudre ce problème, procédez comme suit :

  1. Effectuez les étapes 1 à 7 de la section Configuration de la redirection à l’aide des plug-ins d’application WordPress.

  2. Ouvrez le fichier /opt/bitnami/apache2/conf/vhosts/wordpress-vhost.conf, puis ajoutez la ligne suivante sous \ # BEGIN nip.io redirection :

    RewriteCond expr "! %{REQUEST_URI} -strmatch '*health.html' "

    Voici un exemple de règles auxquelles la ligne a été ajoutée :

    # BEGIN nip.io redirection
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})(:[0-9]{1,5})?$
    RewriteCond expr "! %{REQUEST_URI} -strmatch '*health.html'"
    RewriteRule ^/?(.*) %{REQUEST_SCHEME}://%1.nip.io%2/$1 [L,R=302,NE]
    # END nip.io redirection
  3. Redémarrez le service Web :

    sudo /opt/bitnami/ctlscript.sh restart
  4. Assurez-vous que l’URL **http://ipaddress:80/health.html ** renvoie la réponse 200 OK. Utilisez ce vérificateur d’en-tête HTTP sur le site Web KeyCDN.

  5. Attendez quelques minutes, puis vérifiez si la surveillance de l’état a renvoyé un résultat de réussite.

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 8 mois