Por que meu balanceador de carga do Lightsail apresenta falhas na verificação de integridade, mesmo que o site esteja sendo executado corretamente?

Data da última atualização: 18-10-2021

Estou usando um balanceador de carga do Amazon Lightsail para minha instância do Amazon Lightsail com uma pilha Bitnami. Por que a verificação de integridade do balanceador de carga está falhando, mesmo que o site esteja sendo executado corretamente? Como posso evitar que a verificação de integridade do balanceador de carga falhe?

Breve descrição

O balanceador de carga do Lightsail realiza a verificação de integridade conferindo a resposta do URL http://ipaddress:80/healthcheckpath. A verificação de integridade será aprovada se o código de status da resposta for 200 OK. Essa verificação de resposta não é personalizável no balanceador de carga do Lightsail. Se a instância impõe o redirecionamento HTTPS, http://ipaddress:80/healthcheckpath retornará o código de status de resposta 301 ou 302 em vez de 200 OK. Isso leva a uma falha na verificação de integridade.

O mesmo problema pode ocorrer em instâncias do WordPress Multisite, porque essas instâncias redirecionam o URL http://ipaddress:80/healthcheckpath para http://ipaddress.nip.io/healthcheckpath por padrão.

Resolução

Observação: os caminhos de arquivo nas etapas de resolução a seguir podem mudar dependendo se a pilha Bitnami usa pacotes nativos do sistema Linux (Abordagem A) ou se é uma instalação autônoma (Abordagem B). Para identificar o tipo de instalação do Bitnami, execute o seguinte comando:

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

As etapas usadas para resolver esse problema são diferentes dependendo do seguinte:

  • O redirecionamento é configurado usando plugins de aplicações do WordPress, como o Really Simple SSL.
  • O redirecionamento é configurado usando regras de redirecionamento do servidor Web.
  • Você está usando uma instância de pilha do WordPress Multisite.

O redirecionamento é configurado usando plugins de aplicações do WordPress

Crie um arquivo HTML na raiz do documento do seu site. Em seguida, modifique a configuração da verificação de integridade do balanceador de carga para adicionar esse arquivo como o arquivo de verificação de integridade. Você deve usar esse método porque os redirecionamentos no nível da aplicação normalmente não afetam os arquivos HTML que originalmente não fazem parte do aplicativo.

1.    Conecte-se à instância do Lightsail.

2.    Navegue até o local raiz do documento do seu site onde você armazenou os arquivos do site.

Na pilha Bitnami da Abordagem A, o local raiz do documento é /opt/bitnami/APPNAME/ (por exemplo, /opt/bitnami/wordpress).

Na pilha Bitnami da Abordagem B, o local raiz do documento é /opt/bitnami/apps/APPNAME/htdocs (por exemplo, /opt/bitnami/apps/wordpress/htdocs).

Na pilha LAMP Bitnami, o local raiz do documento é /opt/bitnami/apache2/htdocs.

3.    Crie um arquivo HTML vazio carregando-o ou executando o seguinte comando:

touch health.html

4.    Vá para a página inicial do Lightsail e, em seguida, escolha Networking (Rede).

5.    Escolha o balanceador de carga.

6.    Na guia Target instances (Instâncias de destino), escolha Customize health checking (Personalizar verificação de integridade).

7.    Digite o caminho health.html e escolha Save (Salvar).

8.    Certifique-se de que http://ipaddress:80/health.html retorne a resposta 200OK usando um verificador de cabeçalho HTTP.

9.    Aguarde alguns minutos e confira se a verificação de integridade foi aprovada.

O redirecionamento é configurado usando regras de redirecionamento do servidor Web

Adicione uma regra de exceção para o arquivo de verificação de integridade nas regras de redirecionamento do servidor Web, para que apenas os arquivos originais do site redirecionem, mas não o arquivo de verificação de integridade.

1.    Siga as etapas 1 a 7 na seção Redirecionamento configurado usando plugins de aplicações do WordPress.

2.    Abra o arquivo do servidor Web no qual você adicionou regras de redirecionamento HTTPS e adicione a seguinte linha logo antes da linha que começa com RewriteRule:

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

Veja a seguir exemplos de regras de redirecionamento:

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

Faça a alteração anterior nas regras nos seguintes locais:

Pilha Bitnami da Abordagem A: /opt/bitnami/apache2/conf/bitnami/bitnami.conf e também qualquer arquivo que termine com o prefixo -vhost.conf no diretório /opt/bitnami/apache2/conf/vhosts/.

Pilha Bitnami da Abordagem B: /opt/bitnami/apache2/conf/bitnami/bitnami.conf.

3.    Reinicie o serviço da Web.

sudo /opt/bitnami/ctlscript.sh restart

4.    Certifique-se de que http://ipaddress:80/health.html retorne a resposta 200OK usando este verificador de cabeçalho HTTP.

5.    Aguarde alguns minutos e confira se a verificação de integridade foi aprovada.

Você está usando uma instância de pilha do WordPress Multisite

O WordPress Multisite redireciona a URL http://ipaddress:80/healthcheckpath para http://ipaddress.nip.io/healthcheckpath por padrão. Para corrigir esse problema, faça o seguinte:

1.    Siga as etapas 1 a 7 na seção Redirecionamento configurado usando plugins de aplicações do WordPress.

2.    Abra o arquivo /opt/bitnami/apache2/conf/vhosts/wordpress-vhost.conf e adicione a seguinte linha na seção # BEGIN nip.io redirection:

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

Veja a seguir um exemplo de regras com a linha adicionada:

# 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 o serviço da Web.

sudo /opt/bitnami/ctlscript.sh restart

4.    Certifique-se de que http://ipaddress:80/health.html retorne a resposta 200OK usando este verificador de cabeçalho HTTP.

5.    Aguarde alguns minutos e confira se a verificação de integridade foi aprovada.


Este artigo foi útil?


Precisa de ajuda com faturamento ou suporte técnico?