Como funciona a verificação de integridade do Amazon ELB?

Como funciona a verificação de integridade do Amazon ELB?

Estou tendo problemas para configurar o ELB para meus servidores.

Eu inicio 2 microinstâncias com exatamente a mesma configuração e tento fazer o balanceamento de carga. No entanto, eles nunca passam na verificação de integridade (caminho da porta HTTP 80:"/").

  • Ping está ok no site. O mesmo acontece com o telnet em 80.

Como funciona o exame de saúde? Estou fazendo algo realmente errado?

EDITAR:

  • Tanto o acesso direto ao navegador quanto o GET (via curl) funcionam corretamente (status 200)

Responder1

Eu tenho o mesmo problema. Acabei de verificar o TCP: 80 como uma solução provisória (que funciona bem).

Responder2

Cheguei à conclusão de que a resposta, além de ser uma resposta HTTP 200, deve conter determinados cabeçalhos. Um HTTP 200 retornado do meu servidor Tomcat em execução na instância não funciona, mas uma página HTML estática servida por httpd (também retornando um código 200) funciona bem. Olhando para os cabeçalhos, uma das poucas diferenças era que o do Tomcat não continha o tipo de conteúdo. Não sei por que isso faria diferença, no entanto.

Responder3

Presumo que ele execute uma solicitação HTTP GET para o caminho especificado "/", de cada um dos servidores e procure um código de resposta HTTP bem-sucedido (200). Você pode fazer uma solicitação GET com sucesso http://<backend_server_IP>:80/por meio de um navegador (ou ferramenta CLI como wgetou curl).

Se a solicitação for atendida com sucesso, a segunda coisa a perguntar é: você configurou o grupo de segurança dos seus servidores para que o acesso à porta 80 seja limitado a um endereço de origem ou sub-rede específico? Nesse caso, você precisa adicionar o grupo de segurança do ELB ao filtro. O grupo é sempre chamado:

amazon-elb/amazon-elb-sg

Portanto, você pode simplesmente adicionar isso no campo 'Fonte' na seção Grupos de segurança do Console AWS.

Responder4

então acabei de fazer a verificação de http funcionar apontando-a para um arquivo html estático (em oposição a uma página php).

'/' não funciona, apesar de retornar um status http válido ao usar curl, etc. '/file.html', entretanto, passa na verificação de integridade.

informação relacionada