blog.visualp.com
[원문]http://lng1982.tistory.com/143
웹 애플리케이션을 개발할 때 세션을 이용하여 사용자 로그인 정보를 저장하고, 사용자의 로그인 상태를 유지할 수 있게 개발하는 방법은 많은 개발자가 알고 있다.
하지만 로그인 상태를 유지하기 위해서 서블릿 컨테이너인 tomcat이 내부적으로 어떻게 동작하는지 모르는 분들이 계셔서 이곳에 정리를 해보려고 한다.
여기까지 쿠키를 이용해서 어떻게 세션을 유지하는지에 대해서 알아봤다.
이처럼 동작 원리를 알고 있으면 다음과 같은 문제가 발생할 때 빠른 트러블슈팅이 가능하다.
개발 장비에 포트만 달리하는 3개의 어플리케이션이 적재되어 있다. (톰켓 instance 3개)
222.111.111.111:8001
222.111.111.111:8002
222.111.111.111:8003
하나의 애플리케이션에서 로그인 후 또 다른 어플리케이션에 로그인 하면 처음에 로그인 했던 어플리케이션의 세션이 사라져서 자동으로 로그아웃 처리 된 것을 확인할 수 있는데 이는 JSESSIONID 라는 쿠키 이름의 충돌 때문이다.
충돌이 발생하는 이유는 각 애플리케이션의 아이피가 같기 때문이다.
참고로쿠키는 포트를 구분하지 않기 때문에 8001, 8002, 8003 포트로 서비스를 분리하여도 동일 서비스로 인식하여 로컬에 저장되어 있는 쿠키를 서버로 전송한다.
이를 해결하기 위해서는 server.xml의 context에 다음을 추가하여 각 서비스를 구분하면 위의 문제를 해결할 수 있다.
sessionCookieName="ADMIN_JSESSIONID"
추가적으로 톰켓은 JSESSIONID 쿠키를 풀 도메인으로 셋팅한다. 즉, 서브 도메인이 서로 다르면 JSESSIONID 값도 달라진다는 것이다.
a.test.com <-- JSESSIONID : 11114B1E761B88562A923438B1DA2F17
b.test.com <-- JSESSIONID : 22224B1E761B88562A923438B1DA2F17
c.test.com <-- JSESSIONID : 33334B1E761B88562A923438B1DA2F17
만약 여러 도메인의 세션을 공유하기 원한다면 server.xml에 다음을 추가해 주면 된다.
<Context sessionCookieDomain=”.test.com”>
openFile
-vm
C:\Program Files\Java\jdk1.7.0_01\jre\bin\server\jvm.dll
포프리 요리왕 선발대회
> 대회 세부요강
접수기간 | 2014년 10월01일 ~ 2014년 11월 21일 |
---|---|
심사기간 | 2014년 11월24일 ~ 2014년 11월 26일 |
예선합격자 발표 |
2014년 11월27일 |
※진행 일정은 사정에 의해 변경될수 있습니다.
결승일자 | 2014년 12월 01일 ~ 2014년 12월 26일 |
---|---|
결승심사 | 2013년 12월29일 ~ 2014년 12월 30일 |
수상자 발표 | 2014년 12월 31일 |
※진행 일정은 사정에 의해 변경될수 있습니다.
*자신의 요리가 아니거나 타인의 레시피를 자신의 것으로 꾸며 내어 적발될 시 자동탈락과 동시에 민형사상의 법적 처벌을 받을 수 있습니다.
*모든 응모작에 대한 저작권은 포프리와 작성자에게 동일하게 적용되며 포프리가 응모작의 내용을 마케팅자료로 활용할 수 있음을 알려드립니다.
그누모드 이용해서 사이트 구축 하다보면 icodekorea.com과 sms 서비스 연동을
하는 모듈을 사용하게 되면, 에러가 발생한다.
에러인즉 fsockopen 함수를 사용하여 주고 받게 되는대
동작을 하지 않는다는거 ..
서버에서 정상적으로 라우팅을 못하는 문제 임으로
./etc/network 에 다음과 같이 추가 해준다.
211.172.232.124 wwww.icodekorea.com
network 재시작
하면 해결됨