Como Corrigir Erro 504 Gateway Timeout no Nginx

Este tutorial explica como corrigir o erro 504 Gateway Timeout no Nginx, abordando configurações específicas para FastCGI com PHP-FPM e para Nginx como proxy reverso do Apache. Siga os passos para ajustar os tempos de timeout no PHP, PHP-FPM e Nginx, garantindo uma execução de scripts mais eficiente e eliminando o erro 504.

Como Corrigir Erro 504 Gateway Timeout no Nginx

Um erro comum quando usamos Nginx seja com FastCGI PHP-FPM ou Proxy reverso é nos deparar com o erro 504 Timeout.

Para corrigir o erro 504 timeout no Nginx temos que primeiro saber qual configuração usamos.

Erro 504 Gateway Timeout Nginx FastCGI PHP-FPM

Para Nginx + FastCGI php-fpm usando essas recomendações é possível corrigir o erro.

Primeiro vamos aumentar o tempo de execução do php, para isso vamos editar o arquivo:

vi /etc/php.ini

Agora procuramos a linha max_execution_time e mudamos para 300, ou seja, para 300 segundos:

max_execution_time = 300

Continuando, vamos modificar o arquivo PHP-FPM para também enviar o sinal de timeout aos 300 segundos.

Para isso, editamos o arquivo:

vi /etc/php-fpm.d/www.conf

Buscamos no arquivo a linha request_terminate_timeout que deve estar comentada. Não esqueça de descomentar, ficando assim:

request_terminate_timeout = 300

Não esqueça de salvar sempre o arquivo que editar.

Agora já no NGINX vamos configurar o FastCGI para os mesmos 300 segundos, para isso editamos nosso arquivo de configuração NGINX, que em geral deve estar na pasta:

/etc/nginx/

Buscamos localizar a configuração do FastCGI do arquivo dentro do location e adicionamos o seguinte código:

fastcgi_read_timeout 300;

O resultado final deve ser mais ou menos assim:

location ~ \.php$ {
 fastcgi_keep_conn on;
 fastcgi_pass fcgi_backend;
 fastcgi_index index.php;
 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 include fastcgi_params;
 fastcgi_read_timeout 300;
}

Agora reiniciamos o Nginx e o PHP-FPM:

service nginx restart
service php-fpm restart

Pronto! Seu problema com Nginx 504 timeout com PHP deve ter acabado.

504 Erro Timeout Nginx Proxy

Se está usando Nginx como proxy reverso do Servidor Web Apache, você precisa colocar algumas configurações no seu arquivo de configuração nginx para dar mais tempo a conexão do proxy. Para isso, edite o seguinte arquivo nginx.conf:

vi /etc/nginx/nginx.conf

E adicione à sua configuração proxy as seguintes linhas:

proxy_connect_timeout 600; 
proxy_send_timeout 600; 
proxy_read_timeout 600; 
send_timeout 600;

Então é só reiniciar o nginx:

service nginx restart

Pronto! Você possivelmente resolveu os erros 504 timeout do Nginx.

Qual é a sua reação?

like

dislike

love

funny

angry

sad

wow