Как реплицировать данные сеанса Apache mod_jk

Как реплицировать данные сеанса Apache mod_jk

можно ли реплицировать информацию о прикрепленной сессии mod_jk на другой Apache для настройки отказоустойчивости?

Идея вопроса заключается в том, чтобы настроить два Apache с прикрепленными сессиями перед несколькими Tomcat. Когда один Apache выходит из строя, другой должен взять на себя информацию о сессии mod_jk, чтобы знать, какие запросы обслуживать на каком Tomcat.

Я знаю, что альтернативой была бы репликация сеансов на уровне Tomcat и отказ от использования прикрепленных сеансов, но на данный момент это невозможно.

решение1

Если ваши внутренние серверы (tomcat) кластеризованы, они также должны реплицировать сеансы. В случае сбоя http соединения с 1 http узлом должны переходить на другой узел. Параметр jsessionid должен предоставить http / mod_jk достаточно информации, чтобы знать, к какому узлу направлять (например, jsessionid=lkj234lkj2ljk234lj.jvmRoute1 сообщит mod_jk, что этот сеанс предназначен для воркера с именем jvmRoute1). В случае, если указанный воркер недоступен, mod_jk должен направить его к следующему воркеру, который должен извлечь сеанс из кэша.

т.е. репликация между httpd-серверами не требуется, поскольку клиентский cookie-файл или URL-адрес, содержащий jsessionid, содержат информацию о маршрутизации.

решение2

Не должно возникнуть необходимости в репликации чего-либо между узлами Apache, поскольку сохранение сеанса mod_jk работает без сохранения состояния.

Вам необходимо установить jvmRoute в файле server.xml Tomcat, и он должен совпадать с именем ваших рабочих процессов jk, используемых балансировщиком в mod_jk.

Связанный контент