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