- 编程问答
- 答案列表
HTTP 504 - Gateway Timeout 网关超时[朗读]
错误说明:网关超时,服务器响应时间,达到超出设定的范围原因1:后端电脑之间 ip 通讯缓慢而产生解决办法:如果您的 web 服务器由某一网站托管,只有负责那个网站设置的人员才能解决这个问题。原因2:由于nginx默认的fastcgi进程响应的缓冲区太小造成的错误解决办法:一般默认的fastcgi进程响应的缓冲区是8k,这时可以设置大一点,在nginx.conf里,加入:fastcgi_buffers 8 128k这表示设置fastcgi缓冲区为8块128k大小的空间。当然如果在进行某一项即时的操作,可能需要nginx的超时参数调大点,例如设置成60秒:send_timeout 60;经过这两个参数的调整,一般不会再提示“504 gateway time-out”错误,问题基本解决。原因3:php环境的配置问题解决办法:更改php-fpm的几处配置: 把max_children由之前的10改为现在的30,这样就可以保证有充足的php-cgi进程可以被使用;把request_terminate_timeout由之前的0s改为60s,这样php-cgi进程 处理脚本的超时时间就是60秒,可以防止进程都被挂起,提高利用效率。接着再更改nginx的几个配置项,减少fastcgi的请求次数,尽量维持buffers不变: fastcgi_buffers由 4 64k 改为 2 256k;fastcgi_buffer_size 由 64k 改为 128k;fastcgi_busy_buffers_size 由 128k 改为 256k;fastcgi_temp_file_write_size 由 128k 改为 256k。重新加载php-fpm和nginx的配置,再次测试,如果没有出现“504 gateway time-out”错误,问题解决。
加入收藏