504在nginx上使用PHP进行网关超时

我正在尝试从运行Apache的开发计算机将PHP Laravel应用程序移动到运行nginx的服务器。 我已经configuration了数据库连接,而我的Laravel应用程序(主要是)用期望的页面进行响应。 但是,服务器没有快速响应并返回一个随机的时间

504 Gateway Time-out 

一段时间后。 一个

 service php5-fpm restart 

或者稍后再尝试修复这个暂时的。 我在PHP 5.6(通过FPM),HHVM和MySQL使用nginx。 我不想增加最大的执行时间,因为脚本不应该花这么长的时间。

我怀疑这是在新的环境中的PHP脚本或configuration问题的问题。 这不应该是nginx本身的问题,因为静态资源发送正确。 我如何解决和解决这个问题?

  • 如果您不信任应用程序,您可以设置一个缓慢的日志,以便通过添加您的fpm池configuration来logging每个持续时间超过N秒(fpm)的请求(默认位置往往是(debian):/ etc / php5 / FPM / pool.d / http://www.conf)

    slowlog = /path/to/slow.log

    request_slowlog_timeout = Ns

用你想要的秒数改变N,得到它低于最大执行时间(所以它会在超时之前logging)

  • 看看孩子的数量,max_requests和服务器与fpm运行。 如果这是一个不时发生的问题,也许你已经达到了极限,并没有更多的连接可用于nginx。

  • 看看你的nginx超时值,也许fpm超时更长,nginx放弃之前得到的答案。

我认为这些提示可能会有所帮助,但我不认为我已经涵盖了所有可能的要点,但这些都是一个好的开始