1

我在 node.js 中编写了 http 服务器,它类似于 Amazon S3 的反向代理,并使用 Node 的集群模块、nodejitsu/forever 和 Nginx 将其部署在生产环境中。它工作得很好,但有一天(今天)它停止了响应。我检查了节点的 console.log() 输出和进程,但没有发现任何奇怪的地方。

我的代码要点如下:

http.createServer(function(webReq, webRes) {
  http.get(s3Options, function(s3Res) {
    if (s3Res.statusCode == 200) {
      s3Res.on('end', function() {
        webRes.end('Found data on S3');
      });
    } else {
      webRes.end('No data on S3'); 
    }
  }).on('error', function(e) {
    console.log('problem with s3Req: ' + e.message);
  });
}).listen(1337);

节点进程都处于活动状态(2 个子工作者)而不会永远重新启动:

# ps x | grep node
31436 ?  Ss  3:43 node /usr/bin/forever -l LOG -o OUT -e ERR -a start server.js
31437 ?  Sl  0:10 node /root/server.js
31440 ?  Sl  1:17 /usr/bin/nodejs /root/server.js
31441 ?  Sl  1:17 /usr/bin/nodejs /root/server.js

然后我怀疑有太多连接的东西并做了“lsof -p PID | wc -l”,但计数都处于良好状态 - 只有几十个。

我的 node.js 经验只有一周左右。我错过了什么重要的事情吗?

4

0 回答 0