【发布时间】:2015-07-01 00:05:37
【问题描述】:
我对运行生产 node.js 应用程序比较陌生,最近我遇到了服务器超时问题。
基本上在一定数量的使用和时间之后,我的 node.js 应用程序停止响应请求。我什至看不到在我的控制台上触发路由 - 就像整个事情刚刚停止,来自我的客户端(运行 AFNetworking 的 iPhone)的 HTTP 调用不再到达服务器。但是,如果我重新启动我的 node.js 应用程序服务器,一切都会重新开始工作,直到事情不可避免地再次停止。应用永远不会崩溃,它只是停止响应请求。
我没有收到任何错误,而且我已确保处理并记录所有数据库连接错误,所以我不确定从哪里开始。我认为这可能与内存泄漏有关,因此我安装了 node-memwatch 并设置了内存泄漏监听器,但在我的服务器停止响应请求之前不会调用它。
关于可能发生的事情以及如何解决此问题的任何线索?
这是我的堆栈:
- AWS EC2 微型实例上的 Node.js(使用 Express 4.0 + PM2)
- 运行 MySQL 的 AWS RDS 卷上的数据库(使用 node-mysql)
- 使用 Redis 将会话存储在与 node.js 应用程序相同的 EC2 实例上
- 客户端是通过 AFNetworking 访问服务器的 iPhone
再一次,上面提到的任何模块都没有触发错误。
【问题讨论】:
-
听起来好像您的某些路由没有返回响应,因此挂起其他所有内容
标签: node.js http express amazon-ec2 connection-timeout