安装 LNMP 的 VPS Nginx 出现 504 Gateway Time-out

2011年02月15日  星期二  Hypo @ 23:19:38     51,418 views     

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
本文链接地址:http://www.renhaibo.com/archives/157.html


分 类:网络技术 | 发表评论 | trackback
标 签:,
上一篇:
下一篇:
  1. 本文有4条评论

  2. itpob   发表于 2011年5月26日 10时45分35秒

    9(hypo 购买的vps内存较小所以不能设置太大,应根据你的内存来设置)
    600s(根据具体情况设置,详请查阅参考文章)
    apache-like (php-fpm的默认静态处理方式会使得php-cgi的进程长期占用内存而无法释放,这也是导致nginx出错的原因之一,因此可以将php-fpm的处理方式改成apache模式。)

    →回复此留言

  3. 何辉   发表于 2011年6月15日 13时28分56秒

    在用的nginx 正发生这个问题 学习了

    →回复此留言

/* This is a loop for printing trackbacks if there are any */
  1. 4 Trackback(s)

  2. 2011年02月16日 00时55分33秒: 安装LNMP 的VPS Nginx 出现504 Gateway Time-out | 任海波博客 | _网站建设网站建设
  3. 2011年02月20日 13时14分36秒: lnmp开启nginx和php-cgi多个进程 | 四师兄:只为传播一种思想