【发布时间】:2016-12-20 01:20:30
【问题描述】:
前言:我正在 AWS EB 上运行节点应用程序,并且正在使用 Elasticache redis 服务器进行会话管理。我正在尝试使用 connect-redis 连接到 elasticache,但它似乎没有使用我提供的主机设置,而是默认为 127.0.0.1。
我正在运行一个节点应用程序,并为缓存设置了一个 redis 服务器。 main.js 下面:
var bodyParser = require('body-parser');
var cookieParser = require('cookie-parser');
var expressSession = require('express-session');
var redis = require("redis");
var redisStore = require('connect-redis')(expressSession);
// Application libraries
var express = require('express');
// Redis client
var redisclient = redis.createClient();
redisclient.on("error", function (err)
{
console.log("REDIS Error " + err);
});
// Initialise the application
var app = express();
var sessionport = isNaN(process.env.SESSION_PORT) ? 6379 : Number(process.env.SESSION_PORT);
console.log('redis://' + process.env.SESSION_HOST + ':' + sessionport);
var store = new redisStore({
host: process.env.SESSION_HOST,
port: sessionport,
client: redisclient,
ttl : 2.29e+7
});
app.use(expressSession({
saveUninitialized: false,
resave: false,
secret: process.env.SESSION_SECRET,
store: store
}));
我的环境变量是:
SESSION_HOST: my-session-host.usw2.cache.amazonaws.com
SESSION_PORT: 6379
SESSION_SECRET: supersecret
但是,当我的服务器启动时,我会从节点输出中看到以下输出:
Worker #1 is online. (pid 17643)
redis://liamegan-session-001.i0o002.0001.usw2.cache.amazonaws.com:6379
REDIS Error Error: Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED 127.0.0.1:6379
REDIS Error Error: Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED 127.0.0.1:6379
REDIS Error Error: Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED 127.0.0.1:6379
尽管我为它提供了主机,但它似乎正在尝试连接到 127.0.0.1。我也尝试过为 redisStore 构造函数构建和提供一个 redis URL。
我在这里做了什么明显错误的事情吗?
【问题讨论】:
标签: node.js amazon-web-services redis amazon-elastic-beanstalk