Nodejs 问题排查

前言

用于记录在使用 node 过程中遇到的问题,并尝试寻求解决方案。

问题

问题1

问题描述

访问前端页面时,页面返回 502/504。查看日志后发现,在一些出现问题的时间节点,会出现以下日志:

javascript 复制代码
epoll_wait() reported that client prematurely closed connection while reading upstream

翻译为:

报告客户端在读取上游时过早关闭连接

其实前端常见的 502/504 一般是请求接口时存在超时或者网关挂掉了。但是当整个页面都崩溃,只展示 502/504 时,便是访问前端资源时的网关存在问题。

当然,这里的前端是广义上的前端,不仅是纯静态页面,还包括 Nodejs 服务、Spring MVC, PHP 等这种 web 服务。

而我们的服务基于 nodejs 服务,当定位到问题时是,ssr 端发送一个请求到后端时,请求超时了。而我们的 nginx 超时响应低于后端的超时时长,于是就存在node服务还在等后端返回,而 nginx 已经将请求关闭了。当存在足够数量的挂起请求后,就报错了。

解决方案

在 ssr 端设置超时,在远低于 nginx 超时的报错到达前,提前结束请求。

或者是调整 nginx 的超时时长。

问题总结

该问题存在于当初是为了解决首屏问题,而采用 ssr,然而超时便会导致服务挂起,便需要有一定的错误处理机制来处理。

相关推荐
用户80806181436932 分钟前
JavaScript 面向对象入门到精通
前端·javascript
一条溺水的鱼9 分钟前
一次讲透 JS 闭包 —— 概念、原理、应用和内存泄漏
javascript·面试
吠品11 分钟前
STM32最小系统板引脚梳理与配置实操
前端·javascript·vue.js
曹一二15 分钟前
前端性能优化场景题:图片懒加载 + 大数据渲染
前端
GISer_Jing20 分钟前
Come on,工作总结
前端·ai·前端框架
Hilaku23 分钟前
Sass 和 Less 在 2026 年彻底多余了吗?
前端·javascript·程序员
右耳朵猫AI23 分钟前
Node.js周刊2026W38 | 进程中断缺陷修复、Copilot 迁至 Rust、Node 新增 VFS
javascript·后端·node.js
百慕大三角28 分钟前
AI 写代码最大的风险不是不会写,而是太能写:我给 Coding Agent 加的 4 层工程约束
前端·ai编程·trae
Shao23928 分钟前
基于 Rokid AIUI:在眼镜上穿越五千年
javascript
用户9210802628630 分钟前
从 EventSource 到可复用 SSE Client:我如何实现多实例、双超时与自动重连
前端