Utilizo un equilibrador de carga de Amazon Lightsail para mi instancia de Lightsail con una pila de Bitnami. La comprobación del estado del equilibrador de carga falla a pesar de que el sitio web funciona correctamente.
Descripción breve
Para realizar una comprobación de estado, el equilibrador de carga de Lightsail compruebe la respuesta de la URL http://ipaddress:80/healthcheckpath. Si el código de estado es 200 OK, la comprobación de estado es correcta. No puede personalizar esta comprobación de respuesta en el equilibrador 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 provoca un error en la comprobación de estado.
El mismo problema puede ocurrir en las instancias multisitio de WordPress porque estas instancias redirigen http://ipaddress:80/healthcheckpath a http://ipaddress.nip.io/healthcheckpath de forma predeterminada.
Resolución
Nota: La ruta del archivo depende de si la pila de Bitnami utiliza paquetes de sistema Linux nativos (enfoque A) o 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 utilice para resolver este problema dependen de lo siguiente:
- Ha utilizado plugins de aplicaciones de WordPress, como Really Simple SSL, para configurar la redirección.
- Utilizó las reglas de redireccionamiento del servidor web para configurar el redireccionamiento.
- Está usando una instancia de pila multisitio de WordPress.
Usó complementos de aplicaciones de WordPress para configurar la redirección
Crea un archivo HTML en la raíz del documento de tu sitio web. A continuación, modifique la configuración de comprobación de estado del equilibrador de carga para añadir el archivo HTML como archivo de comprobación de estado. Como las redirecciones a nivel de aplicación solo afectan a los archivos HTML que forman parte de la aplicación original, debe agregar el archivo HTML como archivo de verificación de estado.
-
Connect to your Lightsail instance.
-
Vaya hasta la ubicación raíz del documento de su sitio web donde guardas los archivos del sitio web:
En la pila de Bitnami del enfoque A, la ubicación raíz del documento es /opt/bitnami/APPNAME/ (por ejemplo, /opt/bitnami/wordpress).
En la pila de 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 de Bitnami de LAMP, la ubicación raíz del documento es is /opt/bitnami/apache2/htdocs.
-
Cargue un archivo HTML vacío o ejecute el siguiente comando para crear el archivo HTML vacío:
touch health.html
-
Abra la consola de Lightsail.
-
Elija Redes.
-
Seleccione su equilibrador de carga.
-
En la pestaña Instancias de destino, elija Personalizar la comprobación de estado.
-
Introduzca la ruta health.html y, a continuación, seleccione Guardar.
-
Asegúrese de que http://ipaddress:80/health.html devuelva la respuesta 200 OK. Utilice el comprobador de encabezados HTTP en el sitio web de KeyCDN.
-
Espere unos minutos y, a continuación, compruebe que la comprobación de estado ha pasado.
Utilizó las reglas de redireccionamiento del servidor web para configurar el redireccionamiento
Agregue una regla de excepción en las reglas de redireccionamiento del servidor web para que solo redirijan los archivos originales del sitio web, pero no el archivo de verificación de estado.
-
Complete los pasos 1 a 7 de la sección Utilizó los complementos de aplicaciones de WordPress para configurar la redirección.
-
Abra el archivo del servidor web en el que agregó las reglas de redireccionamiento HTTPS y, a continuación, agregue la siguiente línea antes de la línea que comienza con 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}
Agregue la línea anterior a las reglas en las siguientes ubicaciones:
La pila de Bitnami del enfoque A: /opt/bitnami/apache2/conf/bitnami/bitnami.conf y cualquier archivo que termine en -vhost.conf en el directorio /opt/bitnami/apache2/conf/vhosts/.
La pila de Bitnami según el enfoque B: /opt/bitnami/apache2/conf/bitnami/bitnami.conf.
-
Reinicie el servicio web:
sudo /opt/bitnami/ctlscript.sh restart
-
Asegúrese de que http://ipaddress:80/health.html devuelva la respuesta 200 OK. Utilice este comprobador de encabezados HTTP en el sitio web de KeyCDN.
-
Espere unos minutos y, a continuación, compruebe que la comprobación de estado ha pasado.
Estás usando una instancia de pila multisitio de WordPress
Para resolver este problema, siga estos pasos:
-
Complete los pasos 1 a 7 de la sección Utilizó los complementos de aplicaciones de WordPress para configurar la redirección.
-
Abra el archivo /opt/bitnami/apache2/conf/vhosts/wordpress-vhost.conf y, a continuación, añada la siguiente línea en # BEGIN nip.io redirection:
RewriteCond expr "! %{REQUEST_URI} -strmatch '*health.html' "
A continuación se muestra un ejemplo de reglas con la línea añadida:
# 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
-
Reinicie el servicio web:
sudo /opt/bitnami/ctlscript.sh restart
-
Asegúrese de que http://ipaddress:80/health.html devuelva la respuesta 200 OK. Utilice este comprobador de encabezados HTTP en el sitio web de KeyCDN.
-
Espere unos minutos y, a continuación, compruebe que la comprobación de estado ha pasado.