Openshift Layer4连接,应用程序无法启动

我最近将一组node.js更改推送到了Openshift上的应用程序。 该应用程序在我的本地机器上运行良好,非常接近Openshift部署的香草示例。 Openshift haproxy日志有这最后一行:

[fbaradar-hydrasale.rhcloud.com日志]> [警告] 169/002631(93881):服务器快速/ local-gear是DOWN,原因:Layer4连接问题,信息:“连接被拒绝”,检查持续时间:0ms。 剩下0个活动和0个备份服务器。 0个会话处于活动状态,0个处于活动状态,0个在队列中。

nodejs.log具有最后一行,在此行之前没有错误消息: DEBUG: Program node server.js exited with code 8

我已经search了高和低,似乎无法find任何人有类似的问题或提示如何解决这个问题。 很显然,当试图通过networking访问应用程序时,上述结果导致503服务不可用。

看看这个问题,我认为这是因为你没有任何pathconfiguration在根目录'/'。 OpenShift使用HAProxy作为可伸缩应用程序中的负载平衡器。 HAProxy被configuration为ping健康检查的根目录“/”URL,以确定您的应用程序是启动还是closures。 在你的应用程序中,你没有在根url中configuration任何东西,所以当HAProxy ping“/”时,它会得到503,因此你的应用程序的行为就像这样。 有两种方法可以解决这个问题

  1. 创build一个index.html并将其推送到OpenShift应用程序
  2. 更好的解决scheme是configurationHAProxyconfiguration文件。 使用rhc ssh --app命令进入主设备,然后将目录更改为haproxy/conf ,然后将option httpchk GET /更新为option httpchk GET /valid_location ,最后使用rhc cartridge-restart –cartridge haproxy重新启动HAProxy。 您可以通过http://myapp-myusername.rhcloud.com/haproxy-status查看您的齿轮状态。

希望这会帮助你。

感谢您的回应! 不过,我刚发现这个问题是一回事,一次换一个。 在一个子文件中有一个隐藏的npm依赖关系。 这个依赖没有被添加到package.json文件中,而且Openshift没有适当地重build节点。 一旦添加了依赖关系,一切都开始再次运行。 日志错误是一个红鲱鱼,只是没有一个好的应用程序启动的副作用!