PvP Server Kiralama & Oyun Sunucuları
0 Giriş Yap Kayıt Ol

Solução para 502 Bad Gateway e 504 Gateway Timeout Error no servidor Linux

Yazdır

Solução para 502 Bad Gateway e 504 Gateway Timeout Error no servidor Linux

Um guia passo a passo para resolver problemas de Nginx, Apache, PHP-FPM e tempo limite de serviço.

visto em sites 502 Gateway ruim e 504 Tempo limite do gateway erros geralmente ocorrem porque o servidor web não está obtendo a resposta correta do serviço back-end. Este serviço pode ser PHP-FPM, backend Apache, aplicativo Node.js, serviço API de painel de jogo ou outro aplicativo por trás do proxy.

Esses erros são especialmente comuns em hospedagem, painel de jogo, WHMCS, Pterodactyl, painel de administração personalizado e sistemas de inicialização baseados na web.

Explicação simples: Nginx é como o atendente na porta. Se o PHP ou aplicativo interno não responder, ele mostrará um erro 502 ou 504 ao usuário.

1. Diferença entre erro 502 e 504

  • 502 Gateway inválido: O servidor web não consegue se conectar ao serviço de back-end ou recebe uma resposta distorcida.
  • Tempo limite do gateway 504: O serviço backend parece estar respondendo, mas a resposta não é retornada a tempo.

Portanto, 502 é mais uma falha de conexão/serviço e 504 é um problema de lentidão ou tempo limite.

2. Verificando o status do serviço

Primeiro, verifique se o servidor web e os serviços PHP estão em execução.

systemctl status nginx
systemctl status apache2
systemctl status php-fpm

Nos sistemas CentOS, AlmaLinux ou Rocky Linux, o serviço PHP-FPM pode ser denominado:

systemctl status php-fpm
systemctl status httpd

Se o serviço foi interrompido, reinicie-o:

systemctl restart nginx
systemctl restart php-fpm

3. Revendo arquivos de log

Não é correto prosseguir com suposições para os erros 502 e 504. O arquivo de log mostra a verdadeira causa do erro.

tail -n 100 /var/log/nginx/error.log
tail -n 100 /var/log/apache2/error.log

Em sistemas baseados em CentOS:

tail -n 100 /var/log/httpd/error_log

As seguintes declarações podem ser vistas nos logs:

  • conexão() falhou: Não foi possível conectar-se ao serviço de back-end.
  • o tempo limite do upstream expirou: O serviço de back-end responde com atraso.
  • conexão recusada: O serviço está inativo ou há encaminhamento para a porta errada.
  • permissão negada: Há um problema de soquete ou permissão de arquivo.

4. Soquete PHP-FPM ou controle de porta

Nginx se conecta ao PHP-FPM via soquete ou porta. O caminho do PHP-FPM no arquivo de configuração do Nginx e o valor de escuta real do PHP-FPM devem ser os mesmos.

grep -R "fastcgi_pass" /etc/nginx/sites-enabled/
grep -R "listen =" /etc/php/*/fpm/pool.d/www.conf

Por exemplo, se o Nginx usar:

fastcgi_pass unix:/run/php/php8.2-fpm.sock;

O mesmo soquete deve ser ouvido no lado do PHP-FPM:

listen = /run/php/php8.2-fpm.sock
Importante: Se a versão do PHP mudou, o Nginx ainda pode estar olhando para o antigo caminho do soquete PHP-FPM. Esta é uma das causas mais comuns de erros 502.

5. Aumentando as configurações de tempo limite

Erros 504 podem ser recebidos em grandes painéis de processamento, mercados de jogo, APIs ou scripts PHP de execução lenta. Os valores de tempo limite do Nginx podem ser aumentados.

nano /etc/nginx/nginx.conf

Os seguintes valores podem ser adicionados ao bloco http ou ao bloco do servidor relevante:

proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
fastcgi_read_timeout 300;

Teste as configurações e reinicie o Nginx:

nginx -t
systemctl restart nginx

6. Verificando os limites do processo PHP-FPM

Quando o tráfego aumenta, os limites de transação do PHP-FPM podem ser insuficientes. Nesse caso, as solicitações são enfileiradas e ocorre um tempo limite.

nano /etc/php/8.2/fpm/pool.d/www.conf

Configurações de exemplo:

pm = dynamic
pm.max_children = 30
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 10

Estes valores deverão ser ajustados de acordo com a quantidade de RAM do servidor. Definir um valor muito alto aumenta o consumo de RAM.

Erros Comuns

  • Alterar configurações sem consultar o arquivo de log
  • Não atualizar o caminho do soquete Nginx mesmo que a versão do PHP tenha mudado
  • Não corrigindo a consulta lenta real aumentando o tempo limite
  • Aumentando os limites do PHP-FPM sem calcular RAM
  • Reiniciando o serviço sem testar a configuração do Nginx

Perguntas frequentes

O erro 502 é sempre causado pelo Nginx?
Nginx é apenas aquele que mostra o erro. O verdadeiro problema pode estar no PHP-FPM, no backend do Apache, no aplicativo Node.js ou em outro serviço.

Aumentar o tempo limite é a solução definitiva para erros 504?
Nem sempre. Aumentar o tempo limite proporciona um alívio temporário. A verdadeira solução é encontrar a consulta lenta, o processamento pesado ou o problema de desempenho.

É seguro reiniciar o PHP-FPM?
Geralmente é seguro, mas as solicitações ativas podem ser afetadas por um curto período. Em sistemas ocupados, devem ser preferidas horas de baixo tráfego.

Recomendações de desempenho

  • Verifique a versão do PHP-FPM e o caminho do soquete regularmente.
  • Examine os logs de consultas lentas no painel da web e nos serviços de API.
  • Se a RAM for insuficiente, não aumente o valor max_children do PHP-FPM inconscientemente.
  • Reduza a carga de back-end usando um sistema de cache.
  • Gerencie logs de erros antes que eles cresçam com o logrotate.

Este artigo foi preparado especialmente para PvPServer.

Bu cevap yeterince yardımcı oldu mu?

Oyla

overlay spinner