This post is also available in:
English
Um dos erros mais comuns para quem usa Nginx como Webserver é o erro 504 “Gateway Timeout”. Geralmente este erro é gerado quando o tempo de resposta do servidor que é responsável por processar o pedido por trás do Nginx, neste caso, o PHP, demora para enviar tal resposta. Para corrigir este erro, é necessário fazer alterações tanto no Nginx, como no PHP-FPM.
A forma como o erro 504 “Gateway Timeout” aparece no browser varia de acordo com a versão do Nginx e das configurações do site. As mais comuns são
- “504 Gateway Timeout”
- “504 Gateway Time-Out”
- “504 Gateway Timeout NGINX”
- “Nginx 504 Gateway Timeout”
- “HTTP 504 Gateway Timeout”
- “HTTP 504 Error”
- “HTTP 504”
- “Gateway Timeout (504)”
Modificações no PHP
Para quem usa php-fpm como backend para o Nginx, deve fazer as seguintes alterações:
Alterar o max_execution_time no php.ini (No Ubuntu o php.ini encontra-se em /etc/php/7.0/fpm/php.ini) para:
max_execution_time = 300
Também é necessário alterar o parâmetro request_terminate_timeout em /etc/php/7.0/fpm/pool.d/www.conf para:
request_terminate_timeout = 300
Alterações no Nginx
Na configuração do seu virtual host no Nginx, adicione a variável fastcgi_read_timeout, conforme indicado abaixo:
location ~ .php$ {
root /var/www/sites/nginxtips.com;
try_files $uri =404;
fastcgi_pass unix:/tmp/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_read_timeout 300;
}
A seguir é só fazer o restart tanto do php-fpm quanto do Nginx, para que o limite de tempo de execução das requisições passe para 5 minutos(300 segundos). Se o erro persistir, é so ajustar os valores.






Comentários Recentes