Ubuntu 默认Nginx+php-fpm报502 504 50X问题的解决

1. 问题描述

  • 系统采用前段一层框架+php两层框架+底层restfull api。发现访问页面前段非常慢,在超过1分钟的时间之后才有一个504的错误。

2. 问题排查

  • 重启nginx和php-fpm,问题依旧。
  • 重启nginx和php-fpm,访问下一层php框架资源,可以。访问nginx default站点临时写的Hello world 里的 index.php可以。访问前段框架,不行。再访问下一层php框架,不行,Hello world不行。
    所以可以确定是由于前台框架引起的问题。
  • 重启php-fpm,访问Hello world发现可以,访问前台框架不可以。再访问Hello world发现不可以。
    可以确定是前台框架造成php-fpm崩溃。

3.问题解决

  • ubuntu默认的php-fpm的设置路径为:
/etc/php5/fpm/pool.d/www.conf

非apt安装,或者其他linux发行版也可能是其他路径,或者叫做php-fpm.conf。但是只需找到以下几个参数,其中最重要的是:

pm.max_children = 5

改为合适的值,开发环境可以调成500.

4. 其他

  • Nginx日志文件只有服务启动/重启的时候才会重新创建。
  • 排查一般Nginx日志,首先看access是否有日志,没有可能是nginx有问题,去error日志看。如果是5xx日志,程序问题,去看error看;如果5xx错误,error日志里没有,就是本文所讲的,很可能是php-fom,或者解析php的apache/hhvm的问题了。

你可能感兴趣的:(PHP&mysql&db)