1

我使用 Ubuntu 14.04 LTS OS 创建了一个 Azure 虚拟机。我在这个虚拟机上安装了一个 mean.io 应用程序版本 0.3.3,使用 nginx 在端口 80 上代理 http 端口 3000 中的请求。我在 azure 门户中打开了一个端点,用于私有端口 3000 上的 TCP 协议和公共端口 80。我在 Azure VM 上安装了最新版本的节点。数据库 (mongoDB) 托管在 compose.io 上。

使用 pm2 ( https://www.npmjs.org/package/pm2 ) 我创建了一个运行应用程序的守护进程。

显然一切正常:cpu 没有负载,内存是空的(只有 100MB)。

但是一段时间后,node.js 无法处理该请求。我试图在 localhost 3000 中做一个“卷曲”,但我没有任何回应。

该问题仅在 Azure VM 中仍然存在:我在我的开发机器(ubuntu 14.04 桌面)和 Digital Ocean(ubuntu 14.04 服务器的另一个发行版)上尝试了相同的应用程序,具有相同的配置,并且一切正常,没有问题。

你能帮我找出问题吗?

4

1 回答 1

1

我试图在同一台机器(天蓝色的 CoreOS vm)中对所有基础设施进行 dockerize:

1个带有平均应用程序的容器,1个带有MongoDB的容器,问题仍然存在!!!

最后,我找到了解决方案:保持与 MongoDB 的连接。我已经在这种模式下从平均应用程序修改了 server.js 文件:

var options = {
server: {
        socketOptions: { keepAlive: 1 }
        }
};
var db = mongoose.connect(config.db, options);

在这种模式下,连接仍然存在,问题就解决了。

于 2015-01-13T10:24:58.883 回答