0
我正在基于expressjs的网站上工作,它可以流式传输视频,用户可以从中下载视频文件。
当我启动应用程序时,一切正常。但过了一段时间,应用程序无法流式传输视频,下载文件也无法工作(长时间延迟后它会返回空文件),修复它的唯一方法是重新启动应用程序。Nodejs从磁盘读取时崩溃
Nginx的错误日志:
2017/01/16 19:39:39 [error] 10584#10584: *23717 upstream prematurely closed connection while reading upstream, client: x.x.x.x, server: example.com, request: "GET /api/course/.../video/.../stream HTTP/1.1", upstream: "http://127.0.0.1:8080/api/course/.../video/.../stream", host: "example.com"
我使用PM2在集群模式。
我有这样的应用程序记录错误:
process.on('uncaughtException', function(err) {
console.log(err);
winston.error('Caught exception : ' ,err);
});
但在日志文件中没有错误。
流式视频我使用类似于this的方法。
用于下载文件我使用快速下载功能。
你能泄漏文件句柄或其他系统资源,最终你用完了吗? – jfriend00