2014-05-20 54 views
2

我正在使用Wercker Continuous Integration & Delivery Platform在Node.js OpenShift服务器上测试和部署BitBucket存储库。 Wercker加载到BitBucket存储库中,构建它,并在node.js环境中对其进行测试,并在没有任何问题的情况下通过它。它也用jsHint检查代码,并返回没有任何错误。在OpenShift node.js服务器上部署存储库

Wercker还表示部署通过没有错误,就像OpenShift一样。问题是,当我检查通过OpenShift提供给我的应用程序URL,它与服务器错误的结果:

503 Service Temporarily Unavailable 

The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later. 

在解决此,我重新启动服务器(我运行的基本帐户,我有该选项),但似乎并未解决问题。 Wercker或Openshift都没有表明存在问题,但由于某种原因,我无法无误地访问该域。

我该如何解决这个问题(最基本的层)?

回答

3

这是解决方案:

我安装了OpenShift网站上提供的RHC客户端工具,检查应用程序日志,发现OpenShift是无法找到一个server.js文件在根目录中。所以我将我的app.js文件重命名为server.js,并在我的package.json中将“start”值更改为server.js。然后,我将server.js文件中的代码配置到OpenShift环境变量中,并且做到了!

的server.js现规定:

var http = require('http'); 
var ip = process.env.OPENSHIFT_NODEJS_IP || '127.0.0.1', 
    port = process.env.OPENSHIFT_NODEJS_PORT || '8080'; 

http.createServer(function (req, res) { 
    res.writeHead(200, {'Content-Type': 'text/plain'}); 
    res.end('Hello World\n'); 
}).listen(port, ip); 
console.log('Server running at http://'+ip+':'+port+'/'); 

我现在可以连接到应用程序URL和获得基本的“Hello World”的响应。

(如果此时您仍然无法连接到您的应用程序,重新启动服务器,而且应该做的伎俩。)

我希望这可以帮助别人,将来别人。

这里有一个有用的资源,我倾向于:https://gist.github.com/ryanj/5267357