Warum besteht mein Lightsail Load Balancer die Zustandsprüfung nicht, obwohl die Website korrekt läuft?
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.
-
Stellen Sie eine Verbindung zu Ihrer Lightsail-Instance her.
-
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. -
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
-
Öffnen Sie die Lightsail-Konsole.
-
Wählen Sie Networking.
-
Wählen Sie den Load Balancer aus.
-
Wählen Sie auf der Registerkarte Ziel-Instances die Option Zustandsprüfung anpassen aus.
-
Geben Sie den Pfad health.html ein und wählen Sie dann Speichern.
-
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.
-
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.
-
Führe die Schritte 1–7 im Abschnitt Sie haben WordPress-Anwendungs-Plugins verwendet, um die Umleitung einzurichten aus.
-
Ö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. -
Starten Sie den Webservice neu:
sudo /opt/bitnami/ctlscript.sh restart
-
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.
-
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:
-
Führe die Schritte 1–7 im Abschnitt Sie haben WordPress-Anwendungs-Plugins verwendet, um die Umleitung einzurichten aus.
-
Ö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
-
Starten Sie den Webservice neu:
sudo /opt/bitnami/ctlscript.sh restart
-
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.
-
Warten Sie ein paar Minuten und stellen Sie dann sicher, dass die Zustandsprüfung erfolgreich ist.
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 8 Monaten
- AWS OFFICIALAktualisiert vor 8 Monaten
- AWS OFFICIALAktualisiert vor 6 Monaten
- AWS OFFICIALAktualisiert vor 2 Jahren