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,然而超时便会导致服务挂起,便需要有一定的错误处理机制来处理。

相关推荐
candyTong19 分钟前
Claude Code 每次调用 API 时,上下文是怎么"拼"出来的?
javascript·后端·架构
小林ixn24 分钟前
别再背“变量提升”了!深入编译执行,彻底搞懂 JavaScript 运行机制
javascript
用户8524950718425 分钟前
为什么变量能 未定义先使用?
javascript·程序员
Larcher1 小时前
JS 变量提升:代码没动,为什么执行顺序就变了?
前端·javascript·前端框架
yingyima1 小时前
MySQL 事件调度器速查:核心语法与实战代码
前端
GISer_Jing1 小时前
Claude Code多Agent架构深度剖析
前端·人工智能·架构·自动化
comphub1 小时前
comp-hub:让你的 Vue 业务组件真正"活"起来
前端
AI砖家1 小时前
Claude Code 跳过确认完全指南:让 AI 自己完成开发任务
前端·人工智能·python·ai编程·代码规范
KaMeidebaby1 小时前
卡梅德生物技术快报|Pull Down 实验在 lncRNA - 蛋白互作机制研究中的应用实例解析
大数据·前端·架构·spark·新浪微博
锋行天下1 小时前
让nginx网关扛下所有攻击
前端·后端·nginx