我最近将一组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服务不可用。
答案 0 :(得分:8)
看看我认为它正在发生的问题,因为你没有在root'/'配置任何路由。 OpenShift使用HAProxy作为可伸缩应用程序中的负载均衡器。 HAProxy配置为ping root“/”url以进行运行状况检查,以确定您的应用程序是启动还是关闭。在你的应用程序中,你没有在根URL配置任何东西,所以当HAProxy ping'/'它得到503时,因此你的应用程序就像这样。有两种方法可以解决这个问题
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。希望这会对你有所帮助。
答案 1 :(得分:1)
感谢您的回复!但是,我刚刚通过回滚并一次进行一次更改来发现问题所在。在子文件中有一个隐藏的npm依赖关系。此依赖项尚未添加到package.json文件中,并且Openshift无法正确地重建节点。一旦添加了依赖项,一切都开始再次运行。日志错误有点像红色鲱鱼,只是副作用没有一个好的应用程序启动!