Eu tive o mesmo problema, mas devido à ascensão do público em nosso site, no começo eu fiz todas as sugestões que eu posso encontrar aqui " Como corrigir o tempo limite do gateway? " e outros sites e aqui em SO, e ainda tinha o mesmo problema de 502 erro de gateway. Então eu peguei a questão de que o servidor que eu estava trabalhando tinha um website e um apiend no mesmo servidor, então eu transferi o apiend para outro servidor que funcionou muito bem, até que recebemos muito mais solicitações, pois nossos clientes tinham cada vez mais eventos e problema de tempo limite do gateway 502 voltaram, o apiend ainda está respondendo enquanto o site está no 502.
Então eu tentei verificar todos os meus logs do servidor, até que eu verifiquei o meu php-fpm.log e vi esses erros:
[26-Mar-2015 10:10:04] WARNING: [pool www] server reached pm.max_children setting (35), consider raising it
[26-Mar-2015 12:04:52] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers)
Como foi dito no meu php-fpm.log eu preciso aumentar a configuração max_children, no meu /etc/php5/fpm/pool.d/www.conf
minha configuração atual é:
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 4
pm.max_spare_servers = 8
Usando este comando: ps -ylC php5-fpm --sort:rss
i verifiquei o uso médio de memória em kilobytes por processo de php-fpm e, em seguida, calcule para o pm.max_children.
Calculando pm.max_children
Um exemplo: se o nosso servidor de nuvem tiver 4 GB de RAM e um serviço de banco de dados MySQL estiver em execução e consumir pelo menos 1 GB, nosso melhor objetivo é obter 4 - 1 - 0,5 (marge) GB = 2,5 GB de RAM ou 2560 Mb.
pm.max_children nos leva a 2560 Mb / 60 Mb = 42 max_children
Depois de fazer isso, faz 8 meses que não encontrei o erro de gateway 502 e também verificamos nossos códigos e descobrimos que outros códigos de desenvolvedores que eram processos críticos estavam consumindo muitos recursos, então ainda fizemos melhoria nos códigos de backend também.
Mesmo que essa postagem seja antiga, eu só queria compartilhar como resolvi o problema. : D
Aqui está minha referência. Determinando o número correto de processos filhos para o PHP-FPM no NGinx