AWS EC2, Apache e PHP: php_network_getaddresses: getaddrinfo falhou

1

Executando o PHP 5.6 em uma instância do EC2 com o Apache 2.4.18, ocasionalmente vejo erros no log ao tentar se conectar a um banco de dados RDS:

PDO::__construct(): php_network_getaddresses: getaddrinfo failed: No address associated with hostname

O problema parece ser específico de php_network_getadresses no Apache. Tudo fora do Apache pode resolver o host muito bem e um script PHP de teste sendo executado dentro do Apache que usa gethostbyname pode fazer com êxito a pesquisa de DNS também.

Até agora, o sistema não está ativo o tempo suficiente para eu discernir um padrão real das interrupções, mas acho que eles podem estar relacionados à janela de manutenção do RDS durante a noite.

Eu vi outros usuários pergunte o mesmo , tanto no SF, nos fóruns da AWS e em outros lugares, mas a" solução "parece ser reiniciar o Apache de vez em quando. No entanto, acho isso muito insatisfatório, então estou pensando se existem soluções canônicas melhores para isso?

    
por milgner 22.03.2017 / 12:04

1 resposta

0

De acordo com a AWS, a AWS coloca um limite de taxa nas solicitações de DNS para proteger contra efeitos vizinhos ruidosos. Dessa forma, eles podem fornecer um desempenho estável até esse limite, pois não têm limite, mas risco de desempenho instável.

Configure um cache DNS do lado da instância ou use um servidor DNS externo, como o DNS público do Google , resolve o problema. No seu caso, você poderia adicionar as seguintes linhas ao seu arquivo /etc/resolv.conf como uma solução alternativa: nameserver 8.8.8.8 e nameserver 8.8.4.4

    
por 05.04.2017 / 10:27