服务器

位置:IT落伍者 >> 服务器 >> 浏览文章

nginx 504 Gateway Time-out错误解决办法


发布日期:2022年08月15日
 
nginx 504 Gateway Time-out错误解决办法
我们经常会发现大量的nginx服务器访问时会提示nginx Gateway Timeout错误了下面我来总结了一些解决办法有需要了解的同学可进入参考

一般看来 这种情况可能是由于nginx默认的fastcgi进程响应的缓沖区太小造成的 这将导致fastcgi进程被挂起 如果你的fastcgi服务对这个挂起处理的不好 那么最后就极有可能导致 Gateway Timeout
现在的网站 尤其某些论坛有大量的回复和很多内容的 一个页面甚至有几百K
默认的fastcgi进程响应的缓沖区是K 我们可以设置大点

在nginxconf里 加入:

fastcgi_buffers k

这表示设置fastcgi缓沖区为×k
当然如果您在进行某一项即时的操作 可能需要nginx的超时参数调大点 例如设置成秒:

send_timeout ;

我只是调整了这两个参数 结果就是没有再显示那个超时 可以说效果不错

另一篇文章

首先是更改phpfpm的几处配置

把max_children由之前的改为现在的这样就可以保证 有充足的phpcgi进程可以被使用

把request_terminate_timeout由之前的s改为s这样phpcgi进程 处理脚本的超时时间就是可以防止进程都被挂起提高利用效率

接着再更改nginx的几个配置项减少FastCGI的请求次 数尽量维持buffers不变

fastcgi_buffers由 k 改为 k
fastcgi_buffer_size 由 k 改为 K
fastcgi_busy_buffers_size 由 K 改为 K
fastcgi_temp_file_write_size 由 K 改为 K

好了重新加载phpfpm和nginx的配置再次测试至今两周时间内没有再出现 Gateway Timeout的情况算是达到效果了

另外phpfpm的默认静态处理方式会使得phpcgi的进程长期占用内存而无法释放这也是导致nginx出错的原因之一因此可以将phpfpm的处理方式改成apache模式
apachelike

上一篇:nginx报错 readv() failed (104: Connection res

下一篇:Nginx负载均衡配置实例详解