Openshift Layer4连接,App不会启动

时间:2014-06-19 05:15:03

标签: node.js openshift haproxy

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

  

[fbaradar-hydrasale.rhcloud.com logs]> [警告] 169/002631(93881):   服务器快递/本地设备是DOWN,原因:Layer4连接问题,   信息:"连接被拒绝",检查持续时间:0ms。 0活动和0备份   服务器离开。 0个会话激活,0个重新排队,0个剩余在队列中。

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

我搜索过高低,似乎找不到任何有类似问题或提示如何解决此问题的人。显然,上述结果在尝试通过网络访问应用时,503服务不可用。

2 个答案:

答案 0 :(得分:8)

看看我认为它正在发生的问题,因为你没有在root'/'配置任何路由。 OpenShift使用HAProxy作为可伸缩应用程序中的负载均衡器。 HAProxy配置为ping root“/”url以进行运行状况检查,以确定您的应用程序是启动还是关闭。在你的应用程序中,你没有在根URL配置任何东西,所以当HAProxy ping'/'它得到503时,因此你的应用程序就像这样。有两种方法可以解决这个问题

  1. 创建index.html并将其推送到OpenShift应用程序
  2. 更好的解决方案是配置HAProxy配置文件。使用rhc ssh --app命令将SSH连接到主设备,然后将目录更改为haproxy/conf,然后将option httpchk GET /更新为option httpchk GET /valid_location,最后使用rhc cartridge-restart重新启动HAProxy墨盒haproxy。您可以转到http://myapp-myusername.rhcloud.com/haproxy-status
  3. 查看您的档位状态

    希望这会对你有所帮助。

答案 1 :(得分:1)

感谢您的回复!但是,我刚刚通过回滚并一次进行一次更改来发现问题所在。在子文件中有一个隐藏的npm依赖关系。此依赖项尚未添加到package.json文件中,并且Openshift无法正确地重建节点。一旦添加了依赖项,一切都开始再次运行。日志错误有点像红色鲱鱼,只是副作用没有一个好的应用程序启动!