Warum besteht mein Lightsail Load Balancer die Zustandsprüfung nicht, obwohl die Website korrekt läuft?

Lesedauer: 4 Minute
0

Ich verwende einen Amazon Lightsail Load Balancer für meine Lightsail-Instance mit einem Bitnami-Stack. Die Zustandsprüfung des Load Balancers schlägt fehl, obwohl die Website ordnungsgemäß ausgeführt wird.

Kurzbeschreibung

Um eine Zustandsprüfung durchzuführen, überprüft der Lightsail Load Balancer die Antwort der URL http://ipaddress:80/healthcheckpath. Wenn der Statuscode 200 OK lautet, ist die Zustandsprüfung erfolgreich. Sie können diese Antwortprüfung im Lightsail Load Balancer nicht anpassen. Wenn Ihre Instance die HTTPS-Umleitung erzwingt, gibt http://ipaddress:80/healthcheckpath den Antwortstatuscode 301 oder 302 statt 200 OK zurück. Dies führt dazu, dass die Zustandsprüfung fehlschlägt.

Das gleiche Problem kann bei WordPress Multisite-Instances auftreten, da diese Instances standardmäßig http://ipaddress:80/healthcheckpath auf http://ipaddress.nip.io/healthcheckpath umleiten.

Behebung

Hinweis: Der Dateipfad hängt davon ab, ob der Bitnami-Stack native Linux-Systempakete (Ansatz A) oder eine eigenständige Installation (Ansatz B) verwendet.

Führen Sie den folgenden Befehl aus, um Ihren Bitnami-Installationstyp zu identifizieren:

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

Die Schritte, mit denen Sie dieses Problem lösen, hängen von den folgenden Faktoren ab:

  • Sie haben WordPress-Anwendungs-Plugins wie Really Simple SSL verwendet, um die Umleitung einzurichten.
  • Sie haben Webserver-Umleitungsregeln verwendet, um die Umleitung einzurichten.
  • Sie verwenden eine WordPress-Multisite-Stack-Instance.

Sie haben WordPress-Anwendungs-Plugins verwendet, um die Umleitung einzurichten

Erstellen Sie eine HTML-Datei im Dokumentenstamm Ihrer Website. Ändern Sie dann die Konfiguration der Load-Balancer-Zustandsprüfung, um die HTML-Datei als Zustandsprüfungsdatei hinzuzufügen. Da Umleitungen auf Anwendungsebene nur HTML-Dateien betreffen, die Teil Ihrer ursprünglichen Anwendung sind, müssen Sie die HMTL-Datei als Zustandsprüfungsdatei hinzufügen.

  1. Stellen Sie eine Verbindung zu Ihrer Lightsail-Instance her.

  2. Navigieren Sie zum Dokumentstammverzeichnis Ihrer Website, in dem Sie Ihre Website-Dateien speichern:
    Im Bitnami-Stack unter Ansatz A ist das Stammverzeichnis des Dokuments /opt/bitnami/APPNAME/ (z. B. /opt/bitnami/wordpress).
    Im Bitnami-Stack unter Ansatz B ist das Stammverzeichnis des Dokuments /opt/bitnami/apps/APPNAME/htdocs (z. B. /opt/bitnami/apps/wordpress/htdocs).
    Im LAMP-Bitnami-Stack ist das Stammverzeichnis des Dokuments /opt/bitnami/apache2/htdocs.

  3. Laden Sie entweder eine leere HTML-Datei hoch, oder führen Sie den folgenden Befehl aus, um die leere HTML-Datei zu erstellen:

    touch health.html
  4. Öffnen Sie die Lightsail-Konsole.

  5. Wählen Sie Networking.

  6. Wählen Sie den Load Balancer aus.

  7. Wählen Sie auf der Registerkarte Ziel-Instances die Option Zustandsprüfung anpassen aus.

  8. Geben Sie den Pfad health.html ein und wählen Sie dann Speichern.

  9. Stellen Sie sicher, dass http://ipaddress:80/health.html die Antwort 200 OK zurückgibt. Verwenden Sie den HTTP Header Checker auf der KeyCDN-Website.

  10. Warten Sie ein paar Minuten und stellen Sie dann sicher, dass die Zustandsprüfung erfolgreich ist.

Sie haben Webserver-Umleitungsregeln verwendet, um die Umleitung einzurichten

Fügen Sie den Regeln für die Webserver-Umleitung eine Ausnahmeregel hinzu, sodass nur die ursprünglichen Website-Dateien umgeleitet werden, nicht aber die Zustandsprüfungsdatei.

  1. Führe die Schritte 1–7 im Abschnitt Sie haben WordPress-Anwendungs-Plugins verwendet, um die Umleitung einzurichten aus.

  2. Öffnen Sie die Webserverdatei, in der Sie HTTPS-Umleitungsregeln hinzugefügt haben, und fügen Sie dann die folgende Zeile vor der Zeile hinzu, die mit RewriteRule beginnt:

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

    Im Folgenden finden Sie Beispiele für Umleitungsregeln:

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

    Fügen Sie den Regeln die vorhergehende Zeile an den folgenden Stellen hinzu:
    Der Bitnami-Stack unter Ansatz A: /opt/bitnami/apache2/conf/bitnami/bitnami.conf und jede Datei, die mit -vhost.conf endet, im Verzeichnis /opt/bitnami/apache2/conf/vhosts/.
    Der Bitnami-Stack unter Ansatz B: /opt/bitnami/apache2/conf/bitnami/bitnami.conf.

  3. Starten Sie den Webservice neu:

    sudo /opt/bitnami/ctlscript.sh restart
  4. Stellen Sie sicher, dass http://ipaddress:80/health.html due Antwirt 200 OK zurückgibt. Verwenden Sie diesen HTTP Header Checker auf der KeyCDN-Website.

  5. Warten Sie ein paar Minuten und stellen Sie dann sicher, dass die Zustandsprüfung erfolgreich ist.

Sie verwenden eine WordPress-Multisite-Stack-Instance

Gehen Sie wie folgt vor, um dieses Problem zu beheben:

  1. Führe die Schritte 1–7 im Abschnitt Sie haben WordPress-Anwendungs-Plugins verwendet, um die Umleitung einzurichten aus.

  2. Öffnen Sie die Datei /opt/bitnami/apache2/conf/vhosts/wordpress-vhost.conf und fügen Sie dann die folgende Zeile unter # BEGIN nip.io redirection hinzu:

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

    Das Folgende ist ein Beispiel für Regeln mit der hinzugefügten Zeile:

    # 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. Starten Sie den Webservice neu:

    sudo /opt/bitnami/ctlscript.sh restart
  4. Stellen Sie sicher, dass http://ipaddress:80/health.html die Antwort 200 OK zurückgibt. Verwenden Sie diesen HTTP Header Checker auf der KeyCDN-Website.

  5. Warten Sie ein paar Minuten und stellen Sie dann sicher, dass die Zustandsprüfung erfolgreich ist.

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 8 Monaten