nginx 504 timeout问题的解决,drupal nginx 504错误

前一阵在笔记本电脑上试验lnmp 并打算作为以后的主要的开发和运行环境,用一个drupal架构的项目做实验,


期间发现很多问题,但都能很容易的修复解决,可是在导入中文翻译的时候出现了504 connect timeout 


下面是尝试解决的经过:


首先重试几次,判断一下这是不是个例,如果重试正常那么可能本身环境的问题不大


但是重试多次都是504 错误


下面检查 nginx 作为代理,首先检查nginx的问题,由于nginx是默认编译的,我没有做参数的设置,所以


修改fastcgi 的常见timeout 都改为300 ,并且把php-fpm.conf的timeout 也修改为300 ,php.ini中的最大执行时间


也修改为300,重新启动这些服务,再次执行 依然是504错误,查找了一些资料说可能是fastcgi buffer的大小不合适,


继续调大,执行依然是504


通过浏览器查看network ,超时是在5分钟,所以代理服务器nginx 完成了自己的服务,再次修改php-fpm.conf 启动慢执行


日志,查看也是执行到300 保错,这证明php也是按配置执行。


这问题是出在哪里:


再有可能就是数据库,难道是数据库出现的问题,查看my.cnf 发现innodb 的配置都是默认关闭的,原来安装好mysql后我没有做


其他的设置,好,下面开启并修改一下mysql的配置,特别是 innodb_flush_log_at_trx_commit 这一项,对于innodb 影响很大,项目本身


不是很看重事务性,所有把这个数字修改成2,重启mysql,再次执行导入,就可以正常导入了。


 


由此可见,导致nginx出现504的错误,不光在于后台程序,当然把数据库操作看作是后台也不是没有这样的,这里只是我解决这个问题


的一些思路和方式,回想不知道哪位前人说过的“php 大部分执行时间 都是在等待mysql返回数据 。。。”


转载请注明本文链接:http://www.simapple.com/230.html