【问题标题】:Setting up redis ENV variables -- Node.js on Openshift设置 redis ENV 变量——Openshift 上的 Node.js
【发布时间】:2014-10-15 17:59:34
【问题描述】:

我正在从 Heroku 迁移到 Openshift,因为我的应用大量使用了 socket.io。我似乎已经正确连接了 redis,但只是想确定一下。

当我输入这个时:

 rhc cartridge-status redis -a myapp

我明白了:

Using smarterclayton-redis-2.6 (Redis) for 'redis'

RESULT:

Redis is running
  master (receives writes), mode sharded
  Connect to: xxhostnumberxx-myapp.rhcloud.com:xxportnumberxx password:xxsomepasswordxx

然后我像这样设置 ENV 变量:

rhc set-env OPENSHIFT_REDIS_HOST=xxhostnumberxx-myapp.rhcloud.com -a myapp
rhc set-env OPENSHIFT_REDIS_PORT=com:xxportnumberxx -a myapp
rhc set-env REDIS_PASSWORD=password:xxsomepasswordxx -a myapp

然后在我的 app.js 中有:

var redis;

// Openshift redis connection
if (process.env.OPENSHIFT_REDIS_HOST) {

    var redisHost = process.env.OPENSHIFT_REDIS_HOST;
    var redisPort = process.env.OPENSHIFT_REDIS_PORT;
    var redisPass = process.env.REDIS_PASSWORD;

    redis = require('redis').createClient(redisPort, redisHost);
    redis.auth(redisPass);
} 
// Localhost
else {
    redis = require('redis').createClient();
}

我的 req.session is undefined 错误消失了(我正在使用 redis 进行会话管理),它似乎正在工作。

我只是想确保我做对了。我设置的变量是正确的并且不会改变吗?或者有没有办法动态设置它们?

【问题讨论】:

    标签: node.js redis openshift openshift-client-tools


    【解决方案1】:

    是的,它对我来说看起来不错。您正在使用 rhc set-env 正确设置环境变量,并且由于您使用的是主机名而不是 IP,因此它不应更改。

    【讨论】:

    • 我的一个疑问是xxhostnumberxx 是一个 24 位的字符串,它似乎可以随机更改。所以这是一个永久的价值?
    • 除非您更改该应用程序,否则主机名永远不会更改。
    猜你喜欢
    • 1970-01-01
    • 2020-05-21
    • 2018-04-15
    • 2013-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-07
    • 2011-06-25
    相关资源
    最近更新 更多