[转]nginx 502 Bad Gateway 错误积累与总结

转载自: http://blog.sina.com.cn/s/blog_601d49a30100ek89.html

    公司新服务器安装的是linux+nginx+mysql环境,以前用的都是apathe,不过据说这个俄罗斯一个公司开发的服务器性能很高,负载均衡搭配是apathe的10倍。不过网站放到新服务器后运行的速度确实提升了许多,我觉得这里也有带宽和系统的原因吧。

    nginx的文档很少,连官方网站上也只是几段介绍的文字,所以遇到问题很难解决。公司网站最近就遇到nginx的502错误,用的是织梦的cms,找了很长时间方法终于解决了,现总结下可能导致502错误的一些问题,方便日后排错。

   

  1.请检查你的FastCGI进程是否启动

    2.FastCGI进程不够使用
   请通过执行 netstat -anpo | grep "php-cgi" | wc -l 判断,是否接近你启动的FastCGI进程,接近你的设置,表示进程不够

    3.执行超时  

    请把
  fastcgi_connect_timeout 300;
  fastcgi_send_timeout 300;
  fastcgi_read_timeout 300;
  这几项的值调高

    4.FastCGI缓冲不够
  nginx和apache一样,有前端缓冲限制
  请把
  fastcgi_buffer_size 32k;
  fastcgi_buffers 8 32k;
  这几项的值调高

   5.Proxy缓冲不够
  如果你使用了Proxying,请把
  proxy_buffer_size  16k;
  proxy_buffers      4 16k;
  这几项的值调高

    6.https转发配置错误
  正确的配置方法
  server_name www.mydomain.com;
  location /myproj/repos {
  set $fixed_destination $http_destination;
  if ( $http_destination ~* ^https(.*)$ )
  {
  set $fixed_destination http$1;
  }
  proxy_set_header        Host $host;
  proxy_set_header        X-Real-IP $remote_addr;
  proxy_set_header        Destination $fixed_destination;
  proxy_pass              http://subversion_hosts;
  }

    7.php脚本执行时间过长
  将php-fpm.conf的<value name="request_terminate_timeout">0s</value>的0s改成一个时间

   

    8.重启php-cgi

 

    所以502错误并不一定就是nginx的错误,也可能是php的问题,这就要具体问题具体分析了

posted on 2011-04-28 19:07  DavidYanXW  阅读(630)  评论(0)    收藏  举报