Problema de comunicação Nginx e php-fpm

Problema de comunicação Nginx e php-fpm

Eu tenho 2 servidores nginx e 4 servidores php-fpm dedicados configurados no upstream para executar PHP com 2 instâncias, cada um significa que no upstream forneci 8 instâncias com portas 9000 e 9001 para cada servidor php-fpm.

Às vezes, o que acontece é que o nginx não consegue conectar o php-fpm na porta 9000 e 9001 e mesmo quando faço telnet do nginx para o servidor php-fpm na porta 9000 ou 9001 ele não conecta.

Que tipo de log deve ser habilitado no nginx e php-fpm para identificar o problema, seja um problema de conectividade de rede ou de servidor.

Qualquer ajuda seria muito apreciada.

Obrigado

Responder1

É possível que o php-fpm escute apenas em 127.0.0.1 en não aceite conexões de outros servidores, você deve executar (como root) 'netstat -tulnp' e ver em qual porta/endereço o php-fpm escuta.

Responder2

Dos comentários, quatro coisas me vêm à mente.

  1. Roteamento - São os dois nós de uma rede que permitem a conexão entre si. Use ferramentas de rede como traceroute, arp, arping para verificar (arp para garantir que o nó seja o mesmo).
  2. Existe um firewall ou política de segurança que bloqueia as referidas portas.
  3. O seu servidor está executando RHEL/CentOS/Fedora ou qualquer outro tipo que habilite o SELinux? Se sim, você pode querer desabilitar isso e tentar. Os comandos a seguir forneceriam o status do SElinux e o tornariam permissivo se você assim o desejar. Verifique o status do SElinux: getenforceOR sestatus | grep -i mode. Torne-o permissivo, se for obrigatório: setenforce 0. Verifique o status novamente: getenforce.
  4. verifique se há IPtables em ambos os servidores. iptables -nLlistaria se o iptables está habilitado e permitindo essas portas. Você pode fazer o seguinte para salvar as regras atuais, liberá-las e interromper o iptables por enquanto.
    /etc/init.d/iptables salvar 
    iptables -F
    /etc/init.d/iptables parar

Responder3

O PHP-fpm pode ter ficado sem processos filhos quando isso acontece, verifique se há erros nos logs do seu pool. Isso geralmente acontece se você executar consultas PHP por muito tempo em um ambiente de alto tráfego.

informação relacionada