2014-06-19 52 views
5

我最近將一組node.js更改推送到了Openshift上的應用程序。該應用在我的本地機器上運行良好,與Openshift部署的香草示例非常接近。所述Openshift HAProxy的日誌具有這最後行:Openshift Layer4連接,應用程序無法啓動

[fbaradar-hydrasale.rhcloud.com日誌]> [警告] 169/002631(93881): 服務器快遞/本地齒輪是DOWN,原因:Layer4連接問題, 信息:「拒絕連接」,檢查持續時間:0ms。 0活躍和0備份 服務器。 0個會話處於活動狀態,0個處於活動狀態,0個在隊列中。

的nodejs.log有這個最後一行和該行之前沒有錯誤mesages:DEBUG: Program node server.js exited with code 8

我已搜查高和低,似乎無法在找到一個類似的問題或提示任何人如何解決這個問題。顯然,當試圖通過網絡訪問應用程序時,上述結果導致503服務不可用。

回答

8

看着這個問題,我認爲這是因爲你沒有在根目錄'/'下配置任何路由。 OpenShift使用HAProxy作爲可伸縮應用程序中的負載均衡器。 HAProxy配置爲ping健康檢查的根目錄「/」URL,以確定您的應用程序是啓動還是關閉。在你的應用程序中,你沒有在根網址上配置任何東西,所以當HAProxy ping'/'時它會得到503,因此你的應用程序的行爲就像這樣。有兩種方法可以解決這個問題

  1. 創建index.html,然後把它推到OpenShift應用
  2. 更好的解決辦法是配置HAProxy的配置文件。 SSH使用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查看您的齒輪狀態。

希望這會對你有幫助。

1

感謝您的迴應!但是,我剛發現這個問題是通過回滾並一次進行一次更改來實現的。在子文件中有一個隱藏的npm依賴關係。這個依賴沒有被添加到package.json文件中,而且Openshift沒有適當地重建節點。一旦添加了依賴關係,一切都開始再次運行。日誌錯誤是一個紅鯡魚,只是沒有一個好的應用程序開始的副作用!