如何解决“504 Gateway Time-out”错误

做网站的同学经常会发现一些nginx服务器访问时候提示504 Gateway Time-out错误,一般情况下是由nginx默认的fastcgi进程响应慢引起的,但也有其他情况,这里我总结了一些解决办法供大家参考。

方法/步骤

  1. 情况一:由于nginx默认的fastcgi进程响应缓冲区太小造成

    这种情况下导致fastcgi进程被挂起,如果fastcgi服务队这个挂起处理不是很好的话,就可能提示“504 Gateway Time-out”错误。

  2. 情况一解决办法:

    默认的fastcgi进程响应的缓冲区是8K,我们可以设置大一点,在nginx.conf里,加入:fastcgi_buffers 8 128k

    这表示设置fastcgi缓冲区为8块128k大小的空间。

  3. 情况一解决办法(改进):

    在上述方法修改后,如果还是出现问题,我们可以继续修改nginx的超时参数,将参数调大一点,如设置为60秒:

    send_timeout 60;

    经过这两个参数的调整,结果没有再提示“504 Gateway Time-out”错误,说明效果还是挺不错的,问题基本解决。

  4. 情况二:PHP环境的配置问题

    这里我们需要对php-fpm和nginx进行配置修改。因为这种情况下,也会出现“504 Gateway Time-out”错误提示。

  5. 情况二解决办法( php-fpm配置修改):

    将max_children由之前的10改为30,这样操作是为了保证有充足的php-cgi进程可以被使用。

    将request_terminate_timeout由之前的0秒改成60秒,这样使php-cgi进程处理脚本的超时时间提高到60秒,可以防止进程被挂起以提高利用效率。

  6. 情况二解决办法(nginx配置修改):

    为了减少fastcgi的请求次数,尽量维持buffers不变,我们要更改nginx的几个配置项,如下:

    将fastcgi_buffers由4 64k改为2 256k;

    将fastcgi_buffer_size 由64k改为128k;

    将fastcgi_busy_buffers_size由128k改为256k;

    将fastcgi_temp_file_write_size由128k改成256k。

  7. 7

    情况二解决办法修改完,我们需要重新加载php-fpm和nginx的配置,然后再进行测试。之后就没有发现“504 Gateway Time-out”错误,效果也还是不错的!

时间: 2024-10-07 03:09:55

如何解决“504 Gateway Time-out”错误的相关文章

解决 504 Gateway Time-out和502 Bad Gateway(nginx)

504 Gateway Time-out 问题所在: 所请求的网关没有请求到,简单来说就是没有请求到可以执行的PHP-CGI. 一般看来, 这种情况可能是由于nginx默认的fastcgi进程响应的缓冲区太小造成的, 这将导致fastcgi进程被挂起, 如果你的fastcgi服务对这个挂起处理的不好, 那么最后就极有可能导致504 Gateway Time-out. 解决方法: 与nginx.conf的设置有关. 默认的fastcgi进程响应的缓冲区是8K, 我们可以设置大点在nginx.con

解决504 Gateway Time-out(nginx)

504 Gateway Time-out问题常见于使用nginx作为web server的服务器的网站 我遇到这个问题是在需要插入一万多条数据时候遇到的 一般看来, 这种情况可能是由于nginx默认的fastcgi进程响应的缓冲区太小造成的, 这将导致fastcgi进程被挂起, 如果你的fastcgi服务对这个挂起处理的不好, 那么最后就极有可能导致504 Gateway Time-out现在的网站, 尤其某些论坛有大量的回复和很多内容的, 一个页面甚至有几百K默认的fastcgi进程响应的缓冲

Nginx错误提示:504 Gateway Time-out解决方法

朋友说504 Gateway Time-out的错误提示与nginx本身是没有任何关系的我们可以通过fastcgi配置参数的调整进行解 决. 修改 php-fpm 配置文件: 1.把 max_children 根据系统修改下,保证有充足的php-cgi进程可以被使用; 修改php-fpm配置文件增加php-cgi进程数量 修改php-cgi进程数: 代码如下 复制代码 vi /usr/local/php/etc/php-fpm.conf 找到: <value name="max_child

Nginx报504 gateway timeout错误的解决方法

转载文章来源:http://www.111cn.net/sys/nginx/90669.htm(若侵删) Nginx报504 gateway timeout错误引起,一个是文件配置问题,另一个是相关处理时长了,最后也有可能是资源不足导致了,下面我们一起来看看. 解释如下: 最近在工作中,需要做Excel导入的功能,由于Excel的数据比较多,而且我们的服务端程序需要对数据的内容做校验,会调用很多的外部服务接口,所以毫无悬念的导入Excel接口调用超过了一分钟,并且报错:504 gateway t

nginx 504 Gateway Time-out错误排查

一次nginx 504 Gateway Time-out错误排查.解决记录,经过反复检查,发现造成这个问题的原因就是PHP的CURL没有设置超时时间,解决办法只要设置超时时间或者修改一下nginx的配置即可解决. 记一次莫名其妙的网站失去响应排查.之前网站一直是使用nginx做代理后端的apache运行php来提供服务.apache经常会不定期不定时间的出现不能服务失去响应,然后nginx出现"504 Gateway Time-out"查看错误日志也看不到任何东西,以为是apache的

解决 502、504 Gateway Time-out(nginx)

一.504 Gateway Time-out问题常见于使用nginx作为web server的服务器的网站 我遇到这个问题是在升级discuz论坛的时候遇到的 一般看来, 这种情况可能是由于nginx默认的fastcgi进程响应的缓冲区太小造成的, 这将导致fastcgi进程被挂起, 如果你的fastcgi服务对这个挂起处理的不好, 那么最后就极有可能导致504 Gateway Time-out 现在的网站, 尤其某些论坛有大量的回复和很多内容的, 一个页面甚至有几百K 默认的fastcgi进程

Nginx 502/504 Gateway time-out错误完美解决方案【转发】

在安装完Nginx+PHP-fpm+Mysql后,跑PHP的应用会经常出现504 Gateway Time-out 或者502 Bad Gateway的情况. Nginx 504 Gateway Time-out 的含义是所请求的网关没有请求到,简单来说就是没有请求到可以执行的 PHP-CGI.这种情况可能是由于 nginx 默认的 fastcgi 进程响应的缓冲区太小造成的, 这将导致 fastcgi 进程被挂起, 如果你的 fastcgi 服务对这个挂起处理的不好, 那么最后就极有可能导致 

Nginx出现504 Gateway Time-out的解决方案

使用Nginx作为WEB服务器时,经常会遇到504 Gateway Time-out的错误提示.经过研究,基本可以确定多数情况下这个错误与Nginx本身无关,问题的根源在于Nginx将PHP的解析提交给后端 php-fpm处理的过程中,由于fastcgi参数配置不当造成的超时等一系列的问题. 通过查询相关资料,总结了fastcgi配置参数的调整方案,供大家参考,详细如下: 修改 php-fpm 配置文件: 1.把 max_children 改为64,保证有充足的php-cgi进程可以被使用:2.

WDCP LNMPA和LNMP 504 Gateway time-out错误的解决方法

Nginx的特点是处理静态很给力,Apache的特点是处理动态很稳定,两者结合起来便是LNMPA,nginx处理前端,apache处理后端,这样处理静态会很快,处理动态会很稳定.当我以为安装完成以后便万事大吉,不料更新网站的时候却出现504 Gateway time-out;起初还以为这是偶然,多次尝试后依然出现这样的情况,因此才决定查找解决方法. LNMP面对504 Gateway time-out 因为504 Gateway time-out是Nginx的专属错误,因此起初我以为是nginx