在OpenShift node.js服务器上部署存储库

时间:2014-05-20 18:16:30

标签: node.js deployment openshift wercker

我正在使用Wercker Continuous Integration& Delivery Platform在node.js OpenShift服务器上测试和部署BitBucket存储库。 Wercker在BitBucket存储库中加载,构建它,在node.js环境中对其进行测试,并毫无问题地传递它。它还使用jsHint检查代码,并返回没有任何错误。

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都没有表明存在问题,但出于某种原因,我根本无法在没有错误的情况下访问该域。

如何解决此问题(使用最基本的层)?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

您的应用应该能够收听Openshift反向代理定义的IP和端口。

您需要更改端口号以及服务器配置中的IP。

在此解释:OpenShift node.js Error: listen EACCES