[Redis] production 환경에서 connect-redis를 이용해 memoryStore 사용하기
connect-redis 설치하기
npm i connect-redis
만약 redis와 express-session이 설치되어있지 않다면…
npm install redis connect-redis express-session
server.js 코드 변경
첫 번째 방법
var session = require('express-session');
. . .
var RedisStore = require('connect-redis')(session);
var redisClient = require('redis').createClient({url: process.env.REDIS_URL});
var redisOptions = {
client: redisClient,
no_ready_check: true,
ttl: 600,
logErrors: true
};
var redisSessionStore = new RedisStore(redisOptions);
app.use(session({
saveUninitialized: false,
resave: false,
secret: process.env.COOKIE_SECRET,
store: redisSessionStore,
cookie: {
httpOnly: true,
secure: false,
}
}));
두 번째 방법
const session = require('express-session');
const connectRedis = require('connect-redis');
const RedisStore = connectRedis(session);
const redisClient = require('redis').createClient({url: process.env.REDIS_URL});
const sess = {
resave: false,
saveUninitialized: false,
secret: env.COOKIE_SECRET,
cookie: {
httpOnly: true,
secure: true, // https 적용
domain: process.env.NODE_ENV === 'production' && '.dwintel.tk'
},
store: new RedisStore({
client: redisClient,
logErrors: true
}),
}
. . .
app.use(session(sess));
첫 번재 방법과 두 번째 방법 아무거나 사용해도 상관 없을 것 같다.
npm script 변경
cross-env 설치
npm i cross-env
start script 변경
start script는 package.json에서 변경한다.
"scripts": {
"start": "cross-env NODE_ENV=production node bin/www.js"
},
📝 참고
💛 개인 공부 기록용 블로그입니다. 👻