Node.js Openshift第4层连接,应用程序赢得';开始

Node.js Openshift第4层连接,应用程序赢得';开始,node.js,openshift,haproxy,Node.js,Openshift,Haproxy,我最近在Openshift上向一个应用程序推送了一组node.js更改。该应用程序在我的本地机器上运行良好,非常接近Openshift部署的普通示例。Openshift haproxy日志的最后一行是: [fbaradar-hydrasale.rhcloud.com日志]>[WARNING]169/002631(93881): 服务器express/local gear已关闭,原因:第4层连接问题, 信息:“连接被拒绝”,检查持续时间:0毫秒。0活动和0备份 服务器离开了。0个会话处于活动状态,

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

[fbaradar-hydrasale.rhcloud.com日志]>[WARNING]169/002631(93881): 服务器express/local gear已关闭,原因:第4层连接问题, 信息:“连接被拒绝”,检查持续时间:0毫秒。0活动和0备份 服务器离开了。0个会话处于活动状态,0个会话重新排队,队列中剩余0个会话

nodejs.log有最后一行,在这一行之前没有错误提示:
DEBUG:Program node server.js已退出,代码为8


我到处寻找,似乎找不到任何人有类似的问题或提示如何解决这个问题。显然,当试图通过web访问应用程序时,上述结果会导致503服务不可用。

看看这个问题,我认为这是因为您没有在根“/”上配置任何路由。OpenShift在可扩展应用程序中使用HAProxy作为负载平衡器。HAProxy配置为ping根“/”url以进行运行状况检查,以确定应用程序是否正常运行。在您的应用程序中,您没有在根url上配置任何内容,因此当HAProxy pings“/”时,它会得到503,因此您的应用程序的行为如下。有两种方法可以解决此问题

  • 创建index.html并将其推送到OpenShift应用程序
  • 更好的解决方案是配置HAProxy配置文件。使用
    rhc SSH--app
    命令将SSH切换到主档,然后将目录更改为
    haproxy/conf
    ,然后将
    选项httpchk GET/
    更新为
    选项httpchk GET/valid_location
    ,最后使用rhc cartridge restart--cartridge haproxy重新启动haproxy重新启动haproxy。您可以通过转到来检查齿轮的状态

  • 希望这能对您有所帮助。

    谢谢您的回复!然而,我只是通过后退,一次做一个改变,才发现问题所在。子文件中有一个隐藏的npm依赖项。此依赖项尚未添加到package.json文件,Openshift无法正确重建节点。添加依赖项后,所有内容都再次开始运行。日志错误有点像是转移视线,只是因为没有一个好的应用程序启动而产生的副作用