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

在OpenShift node.js服务器上部署存储库,node.js,deployment,openshift,wercker,Node.js,Deployment,Openshift,Wercker,我正在使用Wercker Continuous Integration&Delivery Platform在node.js OpenShift服务器上测试和部署BitBucket存储库。Wercker加载BitBucket存储库,构建它,在node.js环境中测试它,并毫无问题地传递它。它还使用jsHint检查代码,返回时没有任何错误 Wercker还指出部署过程中没有错误,OpenShift也是如此。问题是,当我检查OpenShift提供给我的应用程序URL时,它会导致服务器错误: 503 S

我正在使用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都没有指出存在问题,但出于某种原因,我无法毫无错误地访问该域


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

您的应用程序应该能够监听Openshift反向代理定义的IP和端口

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


此处解释:

您的应用程序应该能够监听Openshift反向代理定义的IP和端口

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

此处解释:

这就是解决方案:

我在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”响应

(如果此时您仍然无法连接到应用程序,请重新启动服务器,这样就可以了。)

我希望这对将来的其他人有所帮助

这里有一个我所依赖的有用资源:

这就是解决方案:

我在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”响应

(如果此时您仍然无法连接到应用程序,请重新启动服务器,这样就可以了。)

我希望这对将来的其他人有所帮助

以下是我所依赖的有用资源: