安装 LNMP 的 VPS Nginx 出现 504 Gateway Time-out
hypo?今天上午在单位工作中偷空想看看新买的VPS空间的速度是不是快速稳定,没想到杯具了,竟然给我出了个?504 Gateway Time-out,LNMP 一键安装包在CentOS、Debian 和 Ubuntu 上也装过几次,出错也很多,但这个504还是第一次见到。
?
Google 一把,各种解决方法和解释就出来了。Nginx 504 Gateway Time-out?的含义是所请求的网关没有请求到,简单来说就是没有请求到可以执行的 PHP-CGI。这种情况可能是由于 nginx 默认的 fastcgi 进程响应的缓冲区太小造成的, 这将导致 fastcgi 进程被挂起, 如果你的 fastcgi 服务对这个挂起处理的不好, 那么最后就极有可能导致?504 Gateway Time-out。
根据所参考的两篇文章(见文末),hypo 只对 Nginx.conf 和 php-fpm.conf 两个配置文件做了一些修改,观察一段时间,看看效果。
1.将 Nginx.conf 配置文件中相应参数设置为如下:
命令:vi /usr/local/nginx/conf/nginx.conf (lnmp.org出品的lnmp一键安装包路径,其它请自行找目录)
fastcgi_connect_timeout 300s;?
fastcgi_send_timeout 300s;?
fastcgi_read_timeout 300s;?
fastcgi_buffer_size 128k;?
fastcgi_buffers 8 128k;#8 128?
fastcgi_busy_buffers_size 256k;?
fastcgi_temp_file_write_size 256k;?
fastcgi_intercept_errors on;?
2.将 php-fpm.conf 配置文件中相应参数设置为如下值:
命令:vi /usr/local/php/etc/php-fpm.conf (lnmp.org出品的lnmp一键安装包路径,其它请自行找目录)
<value name="max_children">9</value>(hypo 购买的vps内存较小所以不能设置太大,应根据你的内存来设置)?
<value name="request_terminate_timeout">600s</value>(根据具体情况设置,详请查阅参考文章)?
<value name=”style”>apache-like </value>(php-fpm的默认静态处理方式会使得php-cgi的进程长期占用内存而无法释放,这也是导致nginx出错的原因之一,因此可以将php-fpm的处理方式改成apache模式。)?
对 Linux? Hypo 也是菜鸟,只好照着别人的方法来设置了,等一段时间,没什么问题了,这个方法应该就是一个很有效的方法了。
参考文章:
1.深入分析Nginx 502 Bad Gateway和Nginx 504 Gateway Time-out及其解决_Nginx_开发学院
2.Nginx 504 Gateway Time-out解决方案
转自:RenHaibo.com
?
1 楼 sunlong 2012-05-11 我网站经常有504吗?我很少遇到哎,我每天打开网站怎么也有20次吧,还有监控系统在运行 2 楼 xiao 2012-05-23 在并发高的时候才会出现504,是由于fastcgi的性能引起的 3 楼 sunlong 2012-05-23 xiao 写道在并发高的时候才会出现504,是由于fastcgi的性能引起的有好的解决办法吗?那几天的确有你说的504,这两天又没了 4 楼 xiao 2012-05-24 按文章写的去设置后还是这样?有504?