【问题标题】:Deploying a repository on an OpenShift node.js server在 OpenShift node.js 服务器上部署存储库
【发布时间】:2014-05-20 18:16:30
【问题描述】:

我正在使用 Wercker 持续集成和交付平台在 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 都没有表明存在问题,但由于某种原因,我根本无法无错误地访问该域。

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

【问题讨论】:

    标签: node.js deployment openshift wercker


    【解决方案1】:

    这是解决方案:

    我安装了 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

    【讨论】:

      【解决方案2】:

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

      您需要更改端口号,可能还需要更改服务器配置中的 IP。

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

      【讨论】:

        猜你喜欢
        • 2016-08-30
        • 1970-01-01
        • 1970-01-01
        • 2020-07-11
        • 2019-09-20
        • 1970-01-01
        • 1970-01-01
        • 2022-06-23
        • 1970-01-01
        相关资源
        最近更新 更多