apache와 tomcat 2개를 묶었는데 cookie도 공유 할려면 어떻게 해야 하나요?
아래와 같이 한 서버 안에서 apache 한개와 tomcat 2개를 묶었습니다.
apache는 로드밸런싱해주고 tomcat은 세션클러스터링으로 묶었는데요..
쿠키관련해서 문제가 발생합니다.
업무는 openfire로 메신저 서버를 구축하고 웹에서 xmpp4js를 이용해 채팅을 구현하고 있습니다.
로그인시에 쿠키에 저장되야 하는 아이디값때문에 에러가 발생하구 있구요..
톰켓 두대중에 한대를 죽이고 테스트 하면 제대로 로그인하고 채팅이 가능합니다..ㅠ.ㅠ
톰켓 두개를 같이 기동시에 발생하는 문제구요..
xmpp4js에서 비동기 통신으로 처음 요청할때는 1번 서버에 붙어서 돌다가 두번에서 세번정도 넘어가면 2번서버로 붙는데요.
요청시 쿠키값에 아이디가 들어 있는데 찾지를 못합니다.
그래서 http-bind에서 404를 발생시킵니다.
쿠키관련해서 설정해 줘야 하는 부분이나 아니면 처음 붙었던 서버로 계속 연결되도록 해주는 옵션이 있을까요?
ServerAdmin bumworld@gmail.com DocumentRoot "/home/bumworld/source/front_1/ROOT" ServerName www.bumworld.com ServerAlias www.bumworld.com ErrorLog "/home/bumworld/logs/apache/front_error_log" CustomLog "/home/bumworld/logs/apache/front_access_log" common
ProxyPass balancer://tomcat_cluster stickysession=JSESSIONID
ProxyPass balancer://tomcat_cluster/http-bind/ stickysession=JSESSIONID
Order Deny,Allow
Deny from all
Allow from localhost
BalancerMember ajp://127.0.0.1:8009 route=tomcat1 loadfactor=50
BalancerMember ajp://127.0.0.1:28009 route=tomcat2 loadfactor=50
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
DirectoryIndex index.do
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} \.(htm|html|xhtml|css|jpg|gif|png|swf|js$)$
RewriteRule (.*) - [L]
RewriteRule (.*) balancer://tomcat_cluster/$1 [P]
RewriteRule /http-bind/ balancer://tomcat_cluster/http-bind/ [P]
mod_jk 를 사용하여
mod_jk 를 사용하여 아파치와 톰캣을 연동하는 것도 하나의 방법일 듯 합니다.
아파치에서 세션이 생성(?)되면 최초 톰캣으로만 연결합니다.
http://tomcat.apache.org/connectors-doc/reference/workers.html
보시면 나오는 sticky_session 부분을 참조하시면 될듯합니다.
구글에서 mod_jk 검색하시면 사용법은 널렸습니다.
댓글 달기