Articles of cloudfoundry

如何在bluemix上configurationsocket.io粘性会话

我需要在具有多个cloudfoundry实例的IBM Bluemix上部署一个socket.io应用程序,以确保负载均衡。 我跟着socket.io文档和这个链接来使用粘性会话,并确保每个套接字转到正确的实例。 不幸的是,我的客户端连接事件刚刚断开连接,并发生错误'400xhr poll'错误。 这是我的服务器代码: const cookieParser = require('cookie-parser') const session = require('express-session') const redis = require('redis') const app = require('express')() const http = require('http').Server(app) const io = require('socket.io')(http) const RedisStore = require('connect-redis')(session) const redisUrl = 'myredis' var session = session({ store: new RedisStore({client: client}), secret: 'mysecret', name: 'jsessionid', resave: true, saveUninitialized: true }) […]

将redis dump.rdb导入cloudfoundry

我需要将我的本地dump.rdb导入到我创build的cloudfoundry redis服务中。 我打开隧道,并尝试slavefor本地主机6379,它返回一个错误, (error) ERR unknown command 'slaveof' 我试过configuration获取命令,它返回相同的未知错误。 这是可以理解的,可能他们已经禁用了configuration命令。 我如何导入? 还有其他的方法吗? 我搜查了,但找不到细节。

Cloud Foundry和Socket.IO跨域策略问题

每次浏览器加载此url时,我都会收到这类讯息: http://volkova.cloudfoundry.com/socket.io/socket.io.js <?xml version="1.0"?><!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd"><cross-domain-policy><allow-access-from domain="*" to-ports="*"/></cross-domain-policy> 我尝试了socket.io的授权部分,但没有运气。 这是我configurationsocket.io的代码的一部分 io = _.socketio.listen( _.serverdata.xserver, { log: true } ); if( process.env.VMC_APP_PORT ){ io.set( "transports", [ "flashsocket", "htmlfile", "xhr-polling", "jsonp-polling" ] ); io.configure( function( ){ io.set( "authorization", function( handshakeDate, callback ){ //TODO: Provide level of security here callback( null, true ); } ); } ); […]

在云代工node.js上运行subprocess

有没有人试图在Cloud Foundry的node.js上运行subprocess? 我有以下代码在本地运行良好: var port = (process.env.VMC_APP_PORT || 3000), host = (process.env.VCAP_APP_HOST || 'localhost'), http = require('http'); var childProcess = require('child_process'), phantom = require('phantomjs'), ls; http.createServer(function(req, res) { ls = childProcess.exec('phantomjs -h', function (error, stdout, stderr) { if (error) { console.log(error.stack); console.log('Error code: '+error.code); console.log('Signal received: '+error.signal); } console.log('Child Process STDOUT: '+stdout); console.log('Child Process STDERR: […]

Bluemix node.js应用程序在推送新应用程序期间发送502个错误的网关响应

我使用蓝色到绿色的模式将一个node.js应用程序推送到IBM Bluemix。 基本上我的jenkins的工作是做下面的步骤: 上传新的应用程序: cf push my-app-tmp -f cf / manifest-my-app.yml -n my-app-tmp 将该应用添加到负载均衡器 :cf map-route my-app-tmp mybluemix.net -n my-app 删除旧的应用程序 :cf删除my-app -f 将新应用程序重命名为旧名称 :cf重命名my-app-tmp my-app 删除旧路由 :cf unmap-route my-app mybluemix.net -n my-app-tmp 在这个过程中,我的应用有时会返回502 Bad Gateway。 这对我来说似乎是一个负载均衡问题,有什么想法?

configuration文件中缺lessBluemix CF App Loggregator端点

我正在试图在Bluemix中部署一个应用程序的日志。 每次我通过bx app push [app-name]部署时,出现以下错误(但部署仍然成功): Warning: error tailing logs Loggregator endpoint missing from config file 试图拖尾日志产量: $ bx app logs [app-name] Invoking 'cf logs [app-name]'… FAILED Loggregator endpoint missing from config file 这是一个Node.js应用程序,有什么我需要在我的package.json定义? 我在文档中读到的所有东西都使它看起来像是自动工作的: Loggregator自动获取STDOUT和STDERR数据。 版本信息: $ bx -v bx version 0.5.4+ae22935-2017-05-18T06:24:28+00:00

如何跳过重build和构buildNode.js构build包

通过Node.js构build包将应用程序部署到CloudFoundry时 npm重build npm安装 在升级过程中每次执行。 这两个操作都会花费大量的时间,特别是对于具有复杂的商品化依赖关系树的应用程序。 我的应用程序不需要任何本地模块,并拥有自己的所有依赖项。 我search的方式来跳过重build和安装阶段完全步骤。 编辑 :我知道可以通过操作这个SO回答build议的package.json解决方法。 构build系统的其他部分依赖于对应用程序的实际需求是真实的,所以这对我来说是不可能的。

Swisscom Application Cloud:使用java jdk的nodejs

我正在尝试将一个nodejs应用程序部署到swisscom应用程序云。 该应用程序使用node-java模块 。 在升级应用程序时,我收到一条错误消息: [node-java] Error: not found: javac 是否有可能部署与多个构build包(如nodejs和Java)的应用程序,就像在heroku(除了创build一个自定义的buildpack)? @UPDATE:我(现在)意识到cloudfoundry的(实验性) 多buildpack 。 不幸的是,它不会检测我的应用程序作为Java应用程序(不是),无论如何,它会ONY安装JRE而不是JDK。 有没有可能(除了docker的图像或自定义buildpack)在应用程序容器中有jdk?

从应用程序名称获取应用程序guid – 通过代码

我已经和节点应用程序mainApp在CF空间上运行,在这个节点应用程序即时获取其他应用程序的name (部署在同一空间),我想从它得到的应用程序GUID ,我怎么能做到这一点? 这是我试过(我试图让这个空间的所有应用程序,并从guidsearch特定的应用程序,但我得到了HTTP 401 – unauthorized , 任何想法我怎么能从应用程序部署到CF应用程序的应用程序GUID(假设我有应用程序的名称) 有一个更好的方法来实现这一目标? getAllApps: () => { return new Promise((resolve, reject) => { rp({ uri: 'https://' + CF_API + '/v2/apps', json: true }).then((data) => { "use strict"; console.log("apps data: " + data); resolve(data); }); })

Node.js应用程序在本地工作,但不在云中

我的app.js文件如下所示: var port = (process.env.VMC_APP_PORT || 3000); var host = (process.env.VCAP_APP_HOST || 'localhost'); var http = require('http'); var rip = require('./config.js'); http.createServer(function (req, res) { //do nothing…no response expected via http }).listen(port, host); config.js文件包含了这个(以及更多,但是为了简洁/相关性而剪切): //several global.<property_name> assignments global.mName = "Application Name"; //serveral more global.<property_name> assignments … … require("./main.js"); main.js文件是这样开始的: console.log(mName+" >>> Loading."); 当我在本地运行应用程序时,它运行正常执行: 节点app.js 但是,使用以下命令将应用程序推送到云代工厂时: […]