donaricano-btn

 nodejs + express + redis를 이용한 세션관리하기


1. 모듈설치

1) nodejs 에서 redis를 사용하기위한 redis 모듈을 설치한다

- #npm install redis

2) express-session

- express에서 세션관리를 위해 필요하다 

- #npm install express-session

3) connect-redis

- redis db에 접속하기 위한 모듈

- #npm install connect-redis


2. app.js 

- redis 관련 세션을 설정한다

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var redis = require("redis");
var session = require("express-session");
var redisStore = require("connect-redis")(session);
 
 
//redis session
var client = redis.createClient(6379, 'localhost');
 
app.use(session({
  secret:'seo',
  //redis server config
  store : new redisStore({
    client:client,
    ttl:200
  }),
  saveUninitialized: false,
  resave : false
}));


3. routes/index.js

- router 설정

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
router.get('/sessioncheck', function(request, response){
  if(request.session.key){
    console.log('ok session valid ('+request.session.key+')');
    response.send('session valid(current login)');
  }else{
    console.log('not session is not valid (' + request.session.key+')');
    response.send('session is not valid(login please');
  }
});
 
 
router.get('/sessionlogout', function(request, response){
  request.session.destory(function(err){
    if(err){
      console.log(err);
      response.send('session is not destroy');
    }else{
      console.log('session destroy success...');
      response.send('session is destroy');
   }
  });
});
 
router.post('/sessionlogin', function(request, response){
  if(request.session.key){
    console.log('ok session valid ('+request.session.key+')');
    response.send('session valid(current login)');
  }else{
   request.session.key = request.body.id;
    console.log('session save success (' + request.session.key+')');
    response.send('session save success');
  }
});


4. 테스트

1) redis의 값을 체크한다

- 127.0.0.1:6379> keys *

(empty list or set)

2) postman을 이용하여 sessioncheck, sessionlogin, sessioinlogout 을 보낸다



블로그 이미지

리딩리드

,
donaricano-btn

아마존 EC2에 redis 설치하기


1. redis란?

- Redis는 빠른 오픈 소스 인 메모리 키 값 데이터 구조 스토어

- 속도가 빠르고 사용이 간편하다.

- 캐싱, 세션관리 등에 사용되며 웹, 모바일 , 게임 등 널리 사용되고 있다 


2. 아마존 EC2의 Redis 설치

1) wget 설치

- 외부 파일이기 때문에 리눅스의 wget을 먼저 설치한다.

- 설치 주소 http://heeestorys.tistory.com/558?category=660108

2) Redis 다운로드

1
2
3
4
$ wget http://download.redis.io/releases/redis-4.0.10.tar.gz
$ tar xzf redis-4.0.10.tar.gz
$ cd redis-4.0.10
$ make

- make 를 했는데 error가 발생할 수 있다.

- $make distclean 명령어를 입력후 다시 make 하면 된다.

3) Redis 관리를 위한 파일과 경로 만들기

1
2
3
4
$ sudo mkdir /etc/redis
$ sudo mkdir /var/lib/redis
$ sudo cp src/redis-server src/redis-cli /usr/local/bin/
$ sudo cp redis.conf /etc/redis/


3. Redis 설정

1) redis.conf

- 복사한 경로에 맞게 redis를 설정한다.

1
2
3
4
5
6
7
8
9
10
11
12
...
daemonize yes
  
...
bind 0.0.0.0
...
   
....
dir /var/lib/redis
...
 
logfile /var/log/redis_6379.log

2) redis 자동 실행

- redis 자동 실행을 위한 스크립트를 다운 받는다.

1
2
$ cd /tmp
  $ wget https://raw.github.com/saxenap/install-redis-amazon-linux-centos/master/redis-server

- redis-server 파일 이동 및 권한 설정

1
2
3
4
5
6
//이동
 $ sudo mv redis-server /etc/init.d
//설정
$ sudo chmod 755 /etc/init.d/redis-server
$ sudo chkconfig --add redis-server
$ sudo chkconfig --level 345 redis-server on


4. Redis 실행/ 종료

1
2
3
4
5
$ sudo service redis-server start
$ redis-cli ping -> PONG
 
강제 종료시
$sudo service redis-server stop

- 강제 종료가 안될시 redis-cli shutdown


참고: https://openmind8735.com/aws/redis/2017/07/21/aws-ec2-인스턴스에-redis-설치하기

https://stackoverflow.com/questions/8131008/issue-with-redis-install

https://stackoverflow.com/questions/6910378/how-can-i-stop-redis-server


블로그 이미지

리딩리드

,
donaricano-btn

아마존(ec2)에 express 프레임워크 설치하기


1. express 프레임워크란?

- express 모듈과 express-generator 모듈이 합쳐진 소형 프레임워크이다


2. express 프레임워크 설치하기

1
2
3
4
5
//express 모듈을 설치합니다
#sudo npm install -g express
 
//express generator 모듈을 설치합니다
#sudo npm install -g express-generator@4


3. express 모니터링 모듈 설치

1
2
//노드 모니터링을 위한 nodemon 모듈 설치
#sudo npm install -g nodemon

- nodemon 을 설치하지 않으면 실행시에 로그를 보기위한 환경 변수를 따로 작성해야 한다

1) nodemon 설정

1
2
3
4
5
6
//package.json
....
"scripts":{
  "start": "nodemon app.js"
}
....

- 차후에 npm install 하고 위와같이 설정한다.


4. express 기본 템플릿 생성

- 프로젝트 디렉토리를 하나 만들고 그 안에 템플릿을 생성한다.

1
2
3
4
5
//기본템플릿 생성
#express -e
 
//package.json 설치
# sudo npm install


5. express 기본 서버 셋팅

- app.js 파일을 열어 포트를 등록한다

1) 포트설정

1
2
// port setup
app.set('port', process.env.PORT || 8000);

2) 서버 생성

1
2
3
4
5
6
//서버생성
module.exports = app;
 
var server = app.listen(app.get('port'), function() {
console.log('Express server listening on port ' + server.address().port);
});


6. express 실행

#npm start

- 이후에 자신의 아마존 주소:8000 접속하면 끝







블로그 이미지

리딩리드

,
donaricano-btn

aws(ec2)에 노드 설치하기


1. 노드 설치하기

1
2
3
# curl -sL https://rpm.nodesource.com/setup_8.x | sudo -E bash -
#yum install nodejs --enablerepo=nodesource
#node --version

블로그 이미지

리딩리드

,