Apache mod_jk 세션 데이터를 복제하는 방법

Apache mod_jk 세션 데이터를 복제하는 방법

장애 조치 설정을 위해 mod_jk 고정 세션 정보를 다른 아파치에 복제할 수 있습니까?

질문 뒤에 숨은 아이디어는 일부 바람둥이 앞에 고정 세션이 있는 두 개의 아파치를 설정하는 것입니다. 하나의 아파치가 실패하면 다른 하나가 mod_jk 세션 정보를 인계받아 어떤 요청이 어떤 tomcat에 제공되어야 하는지 알 수 있습니다.

고정 세션을 사용하지 않고 Tomcat 수준에서 세션을 복제하는 것이 대안이라는 것을 알고 있지만 현재는 불가능합니다.

답변1

백엔드 서버(tomcat)가 클러스터링된 경우 세션도 복제해야 합니다. http 오류가 발생하는 경우 1개의 http 노드에 대한 연결은 다른 노드로 이동해야 합니다. jsessionid 매개변수는 어느 노드로 라우팅할지 알 수 있는 충분한 정보를 http/mod_jk에 제공해야 합니다(예: jsessionid=lkj234lkj2ljk234lj.jvmRoute1은 이 세션이 jvmRoute1이라는 이름을 가진 작업자에 대한 세션이라는 것을 mod_jk에 알립니다). 지정된 작업자를 사용할 수 없는 경우 mod_jk는 캐시에서 세션을 검색해야 하는 다음 작업자로 라우팅해야 합니다.

즉, jsessionid가 포함된 클라이언트 측 쿠키 또는 URL에 라우팅 정보가 포함되어 있으므로 httpd 서버 간에 복제가 필요하지 않습니다.

답변2

mod_jk의 세션 지속성은 상태 비저장으로 작동하므로 Apache 노드 간에 아무것도 복제할 필요가 없습니다.

Tomcat의 server.xml에서 jvmRoute를 설정해야 하며 이는 mod_jk의 밸런서에서 사용하는 jk 작업자의 이름과 일치해야 합니다.

관련 정보