`
xiao
  • 浏览: 161534 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

安装 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

 

分享到:
评论
4 楼 xiao 2012-05-24  
按文章写的去设置后还是这样?有504?
3 楼 sunlong 2012-05-23  
xiao 写道
在并发高的时候才会出现504,是由于fastcgi的性能引起的

有好的解决办法吗?那几天的确有你说的504,这两天又没了
2 楼 xiao 2012-05-23  
在并发高的时候才会出现504,是由于fastcgi的性能引起的
1 楼 sunlong 2012-05-11  
我网站经常有504吗?我很少遇到哎,我每天打开网站怎么也有20次吧,还有监控系统在运行

相关推荐

Global site tag (gtag.js) - Google Analytics