Session 공유
세션 공유를 시작해 보자.
웹서버를 여러대 운영하는 사람들은 다들 한번씩 고민하는 문제.
저는 직접적으로 책을 찾아보지는 않았고 여러 다른 사람들의 고민 방법을 구글링을 해 본 결과
공통적으로 Session 이란 놈을 공유 하려면 일단 쉽게 말해 공유 폴더같은 다른 웹 서버들이 쉽게 접근해서 가져갈수 있고 추가로
바로바로 해당 폴더에 세션정보를 업데이트 해야 함.(심플하게 설명)
자.. 방법은 여러가지가 있엇다.
1.NFS.Samba 그냥 위에 말한것처럼 특정 공유 폴더를 만들어서 세션 정보 관리
2. DBMS - 세션 데이터를 DB에 저장하는 방식
3. 데몬 - 말 그대로 daemon을 이용하여 세션을 공유하는 방식
---------------------------------------------------------------------
설치
위에 말씀드린대로 너무 simple 하여 설치는 어렵지 않았으나
daemon 이나 보니 이 daemon 구동하려고 필요한(꼭! 특정 패키지) 패키지들도 있어서 해당 패키지들을 설치 할때 약간 오래 시간이 걸렸다.
결론적으로는 유팀장님이 말씀하신대로 패키지 분해(?) 해서 설치 하지는 않았구요.
==============================================================================================================================
sharedance 데몬은 기본적으로 설치때 libevent-1.4.4 패키지를 필요로 한다.( 실제 제가 설치한 서버는 해당 패키지보다 위 버전이었는데 설치가 안됨 )
wget http://www.monkey.org/~provos/libevent-1.4.4-stable.tar.gz
tar zxvf libevent-1.4.4-stable.tar.gz
cd libevent-1.4.4-stable
./configure
make install-strip
==============================================================================================================================
sharedance 설치
wget http://download.pureftpd.org/pub/sharedance/sharedance-0.6.tar.gz
tar zxvf sharedance-0.6.tar.gz
cd sharedance-0.6
./configure;make;make install
mkdir /var/tmp/sharedance <---- 세션데이터 저장 폴더 생성
/usr/local/sbin/sharedanced --directory=/var/tmp/sharedance <---실행
만약, 위 명령어를 실행하고 에러가 발생한다면, 라이브러리를 인식하지 못하는 문제이므로 다음과 같이 libevent 라이브러리가 있는 디렉토리를 지정해준다.
ldconfig /usr/local/lib
=================================================================================================================================
프로세스 확인
root 21334 2822 0 17:03 pts/0 00:00:00 sharedanced [SERVER] <--- 새로운 연결을 받아들이고 데이터를 저장/호출/삭제
root 21335 21334 0 17:03 pts/0 00:00:00 sharedanced [CLEANUP] <---만료된 목록을 제거하는 프로세스
Sharedance는 기본설정으로 TCP port 1042 를 리스닝한다.
tcp 0 0 :::1042 :::* LISTEN
sharedance.php
define('SHAREDANCE_DEFAULT_PORT', 1042); 리스닝 포트 지정
define('SHAREDANCE_DEFAULT_TIMEOUT', 10); 타임아웃 시간 값 지정
그리고 해당 sharedance 가 설치 된 폴더 이동
php/sharedance.php 파일은 Sharedance server 에 연결하고 사용하기 위한 기본적인 PHP 함수들을 포함하고 있다.
런 함수들은 사용자 어플리케이션에 포함되거나 재사용될 수 있다. php/test_sharedance.php 는 그런 샘플예제이다.
php/session_handler.php 파일은 PHP 세션을 저장하기 위한 Sharedance를 사용하려는 모든 스크립트에 인클루드해야 하는 파일이다.
해당 php 폴더 안에 있는 데이터들을 세션 정보들을 가져오려는 서버들측에 이동하여 저장시키자!!
그리고 php/session_handler.php 파일을 열고 SESSION_HANDLER_HOST 의 값을 'localhost' 에서 sharedance가 돌고 있는 서버의 IP 나 호스트네임으로 변경한다.
그리고 해당 웹 서버 php.ini 수정
auto_prepend_file= 를
auto_prepend_file=/opt/sharedance/php/session_handler.php 로 변경하고
session.save_handler = files 를
session.save_handler = user 로 변경한다.
변경작업이 끝나면 아파치 재시작.
'IT > web' 카테고리의 다른 글
HTML 문서 형식지 정의 및 중요성 및 XML namespace (0) | 2014.03.03 |
---|