在openshift

时间:2016-05-14 21:39:02

标签: node.js openshift meanjs

我有一个MEAN.js应用程序,我部署到openshift服务器,执行以下步骤:

1-设置客户端工具rhc,git等。 遵循本教程openshift tutorial 结果:通过rhc ssh成功通过我的openshift域验证

2-使用打开班次提供的磁带Nodejs cartridge on openshift

通过Web控制台创建了一个新应用

3-通过openshift Web控制台为应用程序添加了一个mongodb盒式磁带

4-现在我做了一个手动安装bower的步骤,以避免提交&通过git推送图书馆 在终端上使用rhc ssh命令我在控制台上发出npm install -g bower,它似乎工作正常,bower安装成功

5-通过设置指南从github下载了nodejs应用程序,现在我在本地服务器上部署了应用程序的文件夹结构

6-我需要在app文件夹中包含以下内容才能将我的应用程序成功部署到服务器

package.json文件中的a-npm依赖项  b- bower.json文件(后来我应该能够运行bower install来在repo中安装bower依赖项)不成功我没有对目录的sudo权限

c-运行我的项目所需的所有文件和文件夹结构  d-代码行设置服务器使用绑定mongoose.js的配置文件运行,使用express.js,passport,并侦听端口3000 为此,我将代码包含在已经设置节点服务器以运行`

的现有app.js文件中
    var mongoose = require('./config/mongoose'),
    express = require('./config/express'),
    passport = require('./config/passport');
    var db = mongoose();
    var app = express();
    var passport = passport();`

e-提交所有并推动完成 结果:通过rhc终端成功部署 但当我访问浏览器上的链接时,我得到了一个

  

503服务不可用没有服务器可以处理此请求。

我回到终端并将rhc ssh发送到openshift服务器,然后运行taill_all查看日志中发生了什么,在终端中重复发现以下内容

  

==> app-root / logs / haproxy.log< == [警告] 134/132624(39619):在0毫秒内停止代理表达。 [警告] 134/132624(39619):代理   统计数据停止(FE:2个conns,BE:0个conns)。 [警告] 134/132624(39619)   :代理快递停止(FE:9 conns,BE:103 conns)。 [警告]   134/132624(75275):config:代理'stats'忽略日志格式   因为它没有日志地址。 [警告] 134/132624(75275):config:   代理'express'忽略日志格式,因为它没有日志地址。   [警告] 134/163313(75275):服务器快速/本地设备为DOWN   保养。 [警告] 134/163313(75275):代理'快递'没有   服务器可用! [警告] 134/163353(75275):服务器   快递/本地装备是UP(离开维修)。 [警告] 134/163355   (75275):服务器快速/本地设备是DOWN,原因:Layer4连接   问题,信息:“连接被拒绝”,检查持续时间:0ms。 0活跃和   剩下0个备份服务器。 0个会话激活,0个重新排队,0个剩余   队列。 [ALERT] 134/163355(75275):代理'express'没有服务器   可供使用!

     

==> app-root / logs / nodejs.log< ==       at require(internal / module.js:20:19)       在module.exports(/var/lib/openshift/57375ced7628e1e8f00001bd/app-root/runtime/repo/config/express.js:54:3)       在对象。 (/var/lib/openshift/57375ced7628e1e8f00001bd/app-root/runtime/repo/app.js:46:11)       在Module._compile(module.js:413:34)       在Object.Module._extensions..js(module.js:422:10)       在Module.load(module.js:357:32){[错误:找不到模块'../build/Release/bson']代码:'MODULE_NOT_FOUND'} js-bson:失败了   使用纯JS版本加载c ++ bson扩展{[错误:无法找到   module'../build/Release/bson']代码:'MODULE_NOT_FOUND'} js-bson:   无法加载c ++ bson扩展,使用纯JS版本警告:   connect.session()MemoryStore不是为生产而设计的   环境,因为它会泄漏内存,并且不会扩展到单个   过程

问题是由openshift提供的MEAN.IO cartidge不是与任何自定义MEAN.js应用程序相同的项目结构或依赖项,它本质上是一个带有mongodb和express.js的node.js应用程序,用于服务器端api路由,所以它在这种情况下不可用,例如以下问题中的建议:suggestion to use mean.io cartridge to deploy a mean.js app

请帮助我指导更直接的部署方式在openshift上配置任何mean.js应用程序,如果有明确成功的过去经验,欢迎使用其他服务器的建议,谢谢

1 个答案:

答案 0 :(得分:0)

如果您选择直接在服务器上编辑代码(避免提交和推送更改),那么如果您的应用需要恢复或重建,您的工作将会丢失。

Bower通常用作生成器,在本地构建代码(在提交和推送更改之前)。我不认为bower在OpenShift上正常工作,因为它期望$HOME目录是可写的。

我尝试在本地完成这项工作,然后提交并推送结果。