昨天,一个程序需要导出500条数据,结果发现到150条是,Nginx报出504 Gateway Timeout错误 有的是502错误
经观察,发现大约30秒时超时,php.ini中执行时间配置已经是300秒:
写个程序测试
echo ‘aaa’;
set_time_limit(0);
sleep(40);
echo ‘aa’;
依然超时,可以确定set_time_limit这个函数没生效。
再查php-fcgi的配置php-fpm.conf,下边这个设置疑似有问题:
<value name=”request_terminate_timeout”>30s</value>
这个值修改到 0秒的是时候 是不限制。这样对服务器性能有损失。我设置的是900秒解决问题
Linux系统下 lnmp的集成环境
把 /usr/local/php/etc/php-fpm.conf 中的 request_terminate_timeout = 900 就可以了