Mean.io在Azure VM上的奇怪行为

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

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

所有显然工作正常:CPU是没有负载,内存是空的(只有100MB)。

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

问题只存在于Azure虚拟机中:我在我的开发机器(ubuntu 14.04桌面)和Digital Ocean(ubuntu 14.04服务器的另一个发行版)上尝试了相同的应用程序,使用相同的configuration,所有工作都正常。

你能帮我find问题吗?

我试图dockerize在同一台机器上的所有基础架构(一个CoreOS虚拟机上的azure色):

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

最后,我find了解决scheme:保持连接到MongoDB活着。 我在这种模式下修改了平均应用程序的server.js文件:

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

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