ngnix+php 文件上传处理超时的解决办法

页面的超时时间同时受nginx和php的配置影响。

当是nginx影响到时,出错提醒如下图(图1):

 =============================================================

而当是php的脚本最大执行时间(默认值为30秒)影响到时,出错的提醒如下图(图2):

 

nginx配置中fastcgi_read_timeout指定了nginx接受后端fastcgi响应请求超时时间,默认是60秒,如果fastcgi在规定时间内没有返回数据,就会直接返回图1的提示给客户端。

所以把php的脚本最大执行时间设置大一点,并在及时返回给nginx,这样就避免了超时的问题。

设置php的脚本最大执行时间使用这个函数:bool set_time_limit ( int $seconds );

及时返回数据给nginx可以这么写:

if ($currentRow % 500 == 0) { // 每处理500行数据就返回一个空格并清空输出缓存
echo " ";
ob_flush();
flush();
}

 

posted @ 2018-08-15 15:09  芒果提子  阅读(2301)  评论(0编辑  收藏  举报