存档

  • 解决Nginx+PHP(FastCGI)遇到的502 Bad Gateway错误

    最近几天发现网通线路的服务器出现流量不稳定的情况,具体的表现是,流量时而高,时而低,在流量低的时候发现系统的负载很小,几乎为0,但是过一会,负载又高上去,流量也上去,很是奇怪,查找了2天没有找到原因,后来看到一边文章,介绍了解决nginx出现502的错误现象,按照这个方法进行尝试,最终还是找到了问题的原因。
    解决步骤如下:
    1、查看当前的PHP FastCGI进程数是否够用:
    netstat -anpo | grep “php-cgi” | wc -l
      如果实际使用的“FastCGI进程数”接近预设的“FastCGI进程数”,那么,说明“FastCGI进程数”不够用,需要增大。
    2、部分PHP程序的执行时间超过了Nginx的等待时间,可以适当增加nginx.conf配置文件中FastCGI的timeout时间,例如:
    ……
    http
    {
    ……
    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;
    ……
    }
    ……
    在做第一步的时候,系统当前的PHP FastCGI进程数明显超过了预设值的64这个数值,在电信的服务器上查看当前的PHP FastCGI进程数没有高于64这个数值,而且网通线路的活动连接明显高于电信的活动连接,准备到晚上的时候看看情况,结果到晚上22:30的时候,查看系统当前的PHP FastCGI进程数明显小于64预设值,当前的活动连接也比原来低很多,由此可以说明出现nginx不稳定的情况是由于服务器访问负载过大引起的,就是加上第二步的错误也不顶作用。
    总结,php-cgi进程数不够用、php执行时间长、或者是php-cgi进程死掉,都会出现502错误。
    感谢此篇文章的作者,链接为 http://blog.s135.com/read.php/361.htm

    2008年8月11日 | 归档于 web构架
  • 解决504 Gateway Time-out(nginx)

    504 Gateway Time-out问题常见于使用nginx作为web server的服务器的网站
    我遇到这个问题是在升级discuz论坛的时候遇到的
    一般看来, 这种情况可能是由于nginx默认的fastcgi进程响应的缓冲区太小造成的, 这将导致fastcgi进程被挂起, 如果你的fastcgi服务对这个挂起处理的不好, 那么最后就极有可能导致504 Gateway Time-out
    现在的网站, 尤其某些论坛有大量的回复和很多内容的, 一个页面甚至有几百K
    默认的fastcgi进程响应的缓冲区是8K, 我们可以设置大点
    在nginx.conf里, 加入:

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

    send_timeout 60;
    我只是调整了这两个参数, 结果就是没有再显示那个超时, 可以说效果不错, 但是也可能是由于其他的原因, 目前关于nginx的资料不是很多, 很多事情都需要长期的经验累计才有结果, 期待您的发现哈!

    2008年8月8日 | 归档于 web构架
  • 针对中小型网站(3000人左右/15分钟)的服务器架构

    针对中小型网站(3000人左右/15分钟)的服务器架构
    本文涉及的服务器构架主要针对3000人左右/15分钟的中小型网站, 多见于discuz!论坛构建的社区等等
    环境为linux(内核2.6+), nginx, php(fastcgi), mysql 等高效开源软件构成, 成本低廉, 是普通个人站长朋友的首选,
    但是针对部分企业, 这个方案也是一个非常不错的选择!
    至于nginx和apache等web服务器的性能比较这里就不多说了
    本文是以实例的方式来描述安装以及配置等情况, 供各位参考
    1. 硬件环境
    一台web服务器, 一台db服务器, 没有raid
    web服务器 至强双核1.60GHz, 2G, 73GSCSI*2
    db服务器  至强双核1.60GHz, 2G, 73GSCSI*2
    2. 系统环境
    CentOS 5.x (内核2.6+)
    简单的说下前期工作:安装系统尽可能的精简, 检查系统时间, dmesg看看有无错误, 关闭selinux,ipv6, 升级系统到最新yum -y update
    安装如下web环境必要的软件包:
    # yum install -y ntp vim-enhanced gcc gcc-c++ gcc-g77 flex bison autoconf automake bzip2-devel ncurses-devel libjpeg-devel libpng-devel libtiff-devel freetype-devel pam-devel kernel
    3. 准备软件
    nginx-0.6.31.tar.gz
    pcre-7.3.tar.gz
    php-5.2.6.tar.bz2
    eaccelerator-0.9.5.3.tar.bz2
    ZendOptimizer-3.3.0-linux-glibc21-i386.tar.gz
    lighttpd-1.4.19.tar.bz2
    libxml2-2.6.30.tar.gz
    libmcrypt-2.5.8.tar.bz2
    gd-2.0.34.tar.gz
    mysql-5.0.51a-linux-i686-glibc23.tar.gz
    以上软件都是目前最新最稳定的版本, 查找和下载以上软件或者更新版本
    请在www.google.com输入: 软件全名 intitle:index
    一般头几个都是可以下载的, 找个最快的就可以了
    <!—————以下都是web服务器上的配置—————>
    4.开始安装环境:
    (1)安装gd库
    # tar zxvf [...]

    2008年6月11日 | 归档于 web构架
文章标签 ‘nginx’