症状
浏览器报 ERR_EMPTY_RESPONSE:连接已建立随后关闭且无任何数据。重启有时能暂时缓解,指向崩溃的 worker 或陈旧的代理连接。
诊断
结合后端日志并直接测试后端:
curl -v http://127.0.0.1:8080/ # bypass the proxy
ss -ltnp | grep 8080 # confirm the owner
若只有经过代理的路径失败,说明代理重置了与上游的连接。
修复
确保每个请求都产生响应,即便出错也一样:
process.on('uncaughtException', (err) => {
console.error(err);
});
提高代理的读取超时,并加入守护进程以重启崩溃的进程。
验证
多次刷新页面;每个请求都返回有效 HTTP 状态,访问日志记录完成,不再出现空响应错误。