¿Por qué mi balanceador de carga de Lightsail no supera la comprobación de estado aunque el sitio web se esté ejecutando correctamente?

Última actualización: 18/10/2021

Estoy usando un balanceador de carga de Amazon Lightsail para mi instancia de Amazon Lightsail con una pila Bitnami. ¿Por qué falla la comprobación de estado del balanceador de carga aunque el sitio web se esté ejecutando correctamente? ¿Cómo puedo evitar que falle la comprobación de estado del balanceador de carga?

Descripción corta

El balanceador de carga de Lightsail realiza la comprobación de estado mediante la verificación la respuesta de la URL http://ipaddress:80/healthcheckpath. La comprobación de estado se aprueba si el código de estado de respuesta es 200 OK. Esta comprobación de respuesta no se puede personalizar en el balanceador de carga de Lightsail. Si su instancia aplica la redirección HTTPS, http://ipaddress:80/healthcheckpath devuelve el código de estado de respuesta 301 o 302 en lugar de 200 OK. Esto lleva a un error en la comprobación de estado.

El mismo problema puede ocurrir en las instancias multisitio de WordPress porque estas instancias redirigen la URL http://ipaddress:80/healthcheckpath a http://ipaddress.nip.io/healthcheckpath de forma predeterminada.

Resolución

Nota: Las rutas de archivo en los pasos de resolución siguientes pueden cambiar dependiendo de si la pila de Bitnami utiliza paquetes nativos del sistema Linux (enfoque A) o si se trata de una instalación autónoma (enfoque B). Para identificar el tipo de instalación de Bitnami, ejecute el siguiente comando:

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

Los pasos que se utilizan para resolver este problema varían en función de lo siguiente:

  • La redirección se configura mediante complementos de aplicaciones de WordPress, como Really Simple SSL.
  • La redirección se configura mediante reglas de redireccionamiento del servidor web.
  • Estás usando una instancia de pila multisitio de WordPress.

La redirección se configura mediante complementos de aplicaciones de WordPress

Cree un archivo HTML en la raíz del documento de su sitio web. A continuación, modifique la configuración de comprobación de estado del balanceador de carga para agregar ese archivo como el archivo de comprobación de estado. Debe utilizar este método porque las redirecciones a nivel de aplicación normalmente no afectan a los archivos HTML que originalmente no forman parte de la aplicación.

1.    Conéctese a su instancia de Lightsail.

2.    Navega hasta la ubicación raíz de documentos de su sitio web donde ha almacenado los archivos de su sitio web.

En la pila Bitnami del Enfoque A, la ubicación raíz del documento es /opt/bitnami/APPNAME/ (por ejemplo, /opt/bitnami/wordpress).

En la pila Bitnami del Enfoque B, la ubicación raíz del documento es /opt/bitnami/apps/APPNAME/htdocs (por ejemplo, /opt/bitnami/apps/wordpress/htdocs).

En la pila Bitnami de LAMP, la ubicación raíz del documento es /opt/bitnami/apache2/htdocs.

3.    Cree un archivo HTML vacío cargándolo o ejecutando el siguiente comando:

touch health.html

4.    Vaya a la página de inicio de Lightsail y, a continuación, seleccione Networking (Redes).

5.    Elija su balanceador de carga.

6.    En la pestaña Target instances (Instancias de destino), elija Customize health checking (Personalizar comprobación de estado).

7.    Escriba la ruta health.html y, a continuación, seleccione Save (Guardar).

8.    Asegúrese de que http://ipaddress:80/health.html devuelve la respuesta 200OK mediante un Comprobador de encabezados HTTP.

9.    Espere unos minutos y, a continuación, compruebe que se aprueba la comprobación de estado.

La redirección se configura mediante reglas de redireccionamiento del servidor web

Agregue una regla de excepción para el archivo de comprobación de estado en las reglas de redireccionamiento del servidor web para que solo se redirijan los archivos originales del sitio web, pero no el archivo de comprobación de estado.

1.    Siga los pasos del 1 al 7 de la sección La redirección se configura mediante complementos de aplicaciones de WordPress.

2.    Abra el archivo del servidor web en el que agregó reglas de redirección HTTPS y, a continuación, agregue la siguiente línea justo antes de la línea que empieza por RewriteRule:

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

A continuación se muestran ejemplos de reglas de redireccionamiento:

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

Realice el cambio anterior en las reglas en las siguientes ubicaciones:

Pila Bitnami según el enfoque A: /opt/bitnami/apache2/conf/bitnami/bitnami.conf y también cualquier archivo que termine con el prefijo -vhost.conf en el directorio /opt/bitnami/apache2/conf/vhosts/.

Pila Bitnami según el enfoque B: /opt/bitnami/apache2/conf/bitnami/bitnami.conf.

3.    Reinicie el servicio web.

sudo /opt/bitnami/ctlscript.sh restart

4.    Asegúrese de que http://ipaddress:80/health.html devuelve la respuesta 200OK con este comprobador de encabezados HTTP.

5.    Espere unos minutos y, a continuación, compruebe que se aprueba la comprobación de estado.

Está usando una instancia de pila multisitio de WordPress

WordPress Multisite redirige la URL http://ipaddress:80/healthcheckpath a http://ipaddress.nip.io/healthcheckpath de forma predeterminada. Para solucionar este problema, haga lo siguiente:

1.    Siga los pasos del 1 al 7 de la sección La redirección se configura mediante complementos de aplicaciones de WordPress.

2.    Abra el archivo /opt/bitnami/apache2/conf/vhosts/wordpress-vhost.conf y agregue la siguiente línea en la sección # BEGIN nip.io redirection:

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

A continuación se muestra un ejemplo de reglas con la línea agregada:

# 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.    Reinicie el servicio web.

sudo /opt/bitnami/ctlscript.sh restart

4.    Asegúrese de que http://ipaddress:80/health.html devuelve la respuesta 200OK con este comprobador de encabezados HTTP.

5.    Espere unos minutos y, a continuación, compruebe que se aprueba la comprobación de estado.


¿Le resultó útil este artículo?


¿Necesita asistencia técnica o con la facturación?