如何修复使用Nginx 504网关超时错误

使用Nginx webserver很容易看到504网关超时错误。此超时错误通常由服务内容的后端连接上的许多原因造成。要修复504网关超时,您必须确定使用的是什么配置。

如何查看504网关超时错误

不同的网站可以自定义504网关超时错误消息。下面是最常见的504错误消息:

  • “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)”

Nginx + FastCGI网关超时错误(php-fpm)

对于 Nginx + FastCGI (php-fpm), 您应该尝试以这种方式调整nginx配置:

在 php.ini 文件中调整 max_execution_time 的配置 (CentOS 的路径是 /etc/php.ini):

max_execution_time = 300

但是,您还应该从PHP-FPM更改 www.conf文件中的  request_terminate_timeout parameter  (默认是被注释掉的)

pico -w /etc/php-fpm.d/www.conf

然后将变量设置为与 max_execution_time 相同的值  :

request_terminate_timeout = 300

现在让我们在Nginx虚拟主机配置中添加 fastcgi_read_timeout 变量:

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;
}

重启 nginx:

service nginx reload

使用Nginx作为代理的网关超时错误

对于作为Apache web服务器代理的Nginx,这是你必须尝试修复的504网关超时错误:

在 nginx.conf 文件中加入如下变量:

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

重启 nginx:

service nginx reload

相关资源

留下评论