嗯,感谢回复。
我尝试在slice body filter中将r->main->read_event_handler设置成一个什么都不做的函数,
error.log中会出现一个sendfile() failed (32: Broken pipe)的错误,对于这种情况强制将rc的返回值改成NGX_OK;
还是不能达到想要的效果,客户端断开后,后端也还是会停掉的,不会继续拿之后的分片内容。
在 2018年3月28日星期三 UTC+8下午2:18:14,tokers写道:
Hello!
> 怎样用slice 1m; 配合 proxy_ignore_client_abort on; 将源一个文件的内容全部下载下来,
> 就算客户端断调了也会继续全部分片下载完这个文件的所有内容
在不修改 nginx 源码的情况下应该是办不到的。slice 依赖子请求的机制,会按顺序创建子请求发起 Range 请求
,当某个子请求激活运行时,主请求的读事件 handler 指向的是一个检测客户端连接的函数,如果客户端连接中断,该 handler
运行后会强制终止当前连接上的请求(包括所有子请求)。