В настоящее время у меня очень простой кластер, состоящий из двух экземпляров Tomcat 6.0.32 (Tomcat1 и Tomcat2), работающих на одном VPS. Я использую mod_proxy_ajp и mod_proxy_balancer в качестве балансировщика нагрузки через Apache (на том же VPS). Мы используем базовую аутентификацию формы (через j_security_check) для создания аутентифицированных сеансов для пользователей.
Балансировщик нагрузки работает хорошо, и неаутентифицированные сеансы успешно реплицируются между двумя экземплярами. Однако я не могу заменить аутентифицированные сеансы между каждым экземпляром.
Я использую очень простой JSP с именем session.jsp (на основе шаблона JPS http://www.syslog.gr/articles-mainmenu-99/15-tomcat-cluster-session-replication.html), чтобы проверить сеанс, чтобы убедиться, что это новый сеанс. и распечатайте JSESSIONID. У меня есть одна копия JSP внутри защищенной области и одна копия вне защищенной области.
Я провел следующие тесты:
Тест 1)
Я получаю доступ к session.jsp за пределами защищенной области приложения на Tomcat1, записываю JSESSIONID и подтверждаю балансировщиком нагрузки, что Tomcat1 обработал запрос. Затем я закрываю Tomcat1 и обновляю страницу. Теперь запрос обрабатывается Tomcat2 (подтверждено балансировщиком нагрузки). Когда страница завершает загрузку, я вижу свой исходный JSESSIONID, и моя сессия сохранилась.
Тест 2)
Я получаю доступ к session.jsp внутри защищенной области приложения на Tomcat1. Это предлагает мне войти в систему. После входа в систему меня отправляют на session.jsp, я записываю свой JSESSIONID и подтверждаю балансировщиком нагрузки, что Tomcat1 обработал запрос. Затем я закрываю Tomcat1 и обновляю страницу. Теперь запрос обрабатывается Tomcat2 (подтверждено балансировщиком нагрузки). Когда страницы загружаются, я проверяю свой файл cookie. Теперь у меня есть новый JSESSIONID, и мне снова предлагается войти в систему.
До сих пор я полагал, что аутентифицированные сеансы не реплицируются, как неаутентифицированные сеансы. Является ли это веской причиной для этого или указывает на проблему с конфигурацией?