Perché il mio bilanciatore del carico Lightsail non riesce a eseguire il controllo dell’integrità anche se il sito Web funziona correttamente?

Ultimo aggiornamento: 18-10-2021

Sto utilizzando un bilanciatore del carico Amazon Lightsail per la mia istanza Amazon Lightsail con uno stack Bitnami. Perché il controllo dell’integrità del bilanciatore del carico non riesce anche se il sito Web è in esecuzione correttamente? Come è possibile evitare che il controllo dell’integrità del bilanciatore del carico non funzioni?

Breve descrizione

Il bilanciatore del carico di Lightsail esegue il controllo dell’integrità verificando la risposta dell'URL http://ipaddress:80/healthcheckpath. Il controllo dell’integrità viene superato se il codice di stato della risposta è 200 OK. Questo controllo della risposta non è personalizzabile nel bilanciatore del carico Lightsail. Se l'istanza applica il reindirizzamento HTTPS, allora http://ipaddress:80/healthcheckpath restituisce il codice di stato con risposta 301 o 302 anziché 200 OK. Ciò porta a un esito negativo del controllo dell’integrità.

Lo stesso problema può verificarsi nelle istanze multisito di WordPress perché queste istanze reindirizzano l'URL http://ipaddress:80/healthcheckpath a http://ipaddress.nip.io/healthcheckpath per impostazione predefinita.

Risoluzione

Nota: i percorsi dei file nei seguenti passaggi di risoluzione potrebbero cambiare a seconda che lo stack Bitnami utilizzi pacchetti di sistema Linux nativi (Approccio A) o se si tratta di un'installazione autonoma (Approccio B). Per identificare il tipo di installazione Bitnami, emetti il seguente comando:

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

I passaggi utilizzati per risolvere questo problema variano a seconda dei seguenti elementi:

  • Il reindirizzamento è impostato utilizzando i plug-in dell'applicazione WordPress, come Really Simple SSL.
  • Il reindirizzamento è impostato utilizzando le regole di reindirizzamento del server Web.
  • Stai utilizzando un'istanza stack multisito di WordPress.

Il reindirizzamento è impostato utilizzando i plug-in dell'applicazione WordPress

Crea un file HTML nella directory principale del documento del tuo sito Web. Quindi modifica la configurazione del controllo dell’integrità del bilanciatore del carico per aggiungere quel file come file di controllo dell’integrità. È necessario utilizzare questo metodo perché i reindirizzamenti a livello di applicazione normalmente non influiscono sui file HTML che non fanno parte originariamente dell'applicazione.

1.    Connettiti alla tua istanza Lightsail.

2.    Passa alla posizione root del documento del sito Web in cui sono stati memorizzati i file del sito Web.

Nello stack Bitnami con l’Approccio A, la posizione root del documento è /opt/bitnami/appName/ (ad esempio, /opt/bitnami/wordpress).

Nello stack Bitnami con l’Approccio B, la posizione root del documento è /opt/bitnami/apps/appname/htdocs (ad esempio, /opt/bitnami/apps/wordpress/htdocs).

Nello stack Bitnami LAMP, la posizione root del documento è /opt/bitnami/apache2/htdocs.

3.    Crea un file HTML vuoto caricandolo o emettendo il seguente comando:

touch health.html

4.    Passa alla home page di Lightsail, quindi scegli Reti.

5.    Scegli il tuo bilanciatore del carico.

6.    Nella scheda Istanze di destinazione, scegli Personalizza controllo dell’integrità.

7.    Digita il percorso health.html e quindi scegli Salva.

8.    Assicurati che http://ipaddress:80/health.html restituisca la risposta 200 OK utilizzando un programma di controllo dell’intestazione HTTP.

9.    Attendi qualche minuto, quindi verifica che il controllo dell’integrità abbia avuto esito positivo.

Il reindirizzamento è impostato utilizzando le regole di reindirizzamento del server Web

Aggiungi una regola di eccezione per il file di controllo dell’integrità nelle regole di reindirizzamento del server Web in modo che solo i file del sito Web originale vengano reindirizzati, ma non il file di controllo dell’integrità.

1.    Completa le fasi da 1 a 7 nella sezione Il reindirizzamento è impostato utilizzando i plug-in dell'applicazione WordPress.

2.    Apri il file del server Web in cui sono state aggiunte le regole di reindirizzamento HTTPS, quindi aggiungi la riga seguente appena prima della riga che inizia con RewriteRule:

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

Di seguito sono riportati esempi di regole di reindirizzamento:

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

Apporta le modifiche precedenti alle regole nelle seguenti posizioni:

Lo stack Bitnami con l’Approccio A: /opt/bitnami/apache2/conf/bitnami/bitnami.conf e qualsiasi altro file che termina con il prefisso -vhost.conf nella directory /opt/bitnami/apache2/conf/vhosts/.

Lo stack Bitnami con l'Approccio B: /opt/bitnami/apache2/conf/bitnami/bitnami.conf.

3.    Riavvia il servizio Web.

sudo /opt/bitnami/ctlscript.sh restart

4.    Assicurati che http://ipaddress:80/health.html restituisca la risposta 200 OK utilizzando questo strumento di controllo dell’intestazione HTTP.

5.    Attendi qualche minuto, quindi verifica che il controllo dell’integrità abbia avuto esito positivo.

Stai utilizzando un'istanza stack di WordPress Multisite

WordPress Multisite reindirizza l'URL http://ipaddress:80/healthcheckpath a http://ipaddress.nip.io/healthcheckpath per impostazione predefinita. Per risolvere il problema, completa le seguenti operazioni:

1.    Completa le fasi da 1 a 7 nella sezione Il reindirizzamento è impostato utilizzando i plug-in dell'applicazione WordPress.

2.    Apri il file /opt/bitnami/apache2/conf/vhosts/wordpress-vhost.conf e aggiungi la seguente riga sotto la sezione # BEGIN nip.io redirection:

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

Di seguito è riportato un esempio di regole con la riga aggiunta:

# 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.    Riavvia il servizio Web.

sudo /opt/bitnami/ctlscript.sh restart

4.    Assicurati che http://ipaddress:80/health.html restituisca la risposta 200 OK utilizzando questo programma di controllo dell’intestazione HTTP.

5.    Attendi qualche minuto, quindi verifica che il controllo dell’integrità abbia avuto esito positivo.


Questo articolo è stato utile?


Hai bisogno di supporto tecnico o per la fatturazione?