Я установил обратный прокси-сервер между интерфейсом Apache и несколькими серверными модулями Tomcat. Приведенный ниже блок кода включает параметр ProxyHTMLURLMap, чтобы HTML можно было переписать для удаления пути контекста Tomcat. При такой настройке после входа в мое приложение начальный JSESSIONID устанавливается правильно, но при переходе на любую другую страницу этот JSESSIONID теряется, а другой устанавливается приложением.
Я должен упомянуть, что первоначальный вход в систему направлен на URL-адрес, который включает текущий путь контекста (т.е. https://app.domain.com/context/home), но при переходе на другую страницу этот контекстный путь отсутствует в URL-адресе (т.е. https://app.domain.com/page2).
<Proxy balancer://happcluster>
BalancerMember ajp://happ01.h.s.com:8009 route=worker1 loadfactor=10 timeout=15 retry=5
BalancerMember ajp://happ02.h.s.com:8009 route=worker2 loadfactor=10 timeout=15 retry=5
BalancerMember ajp://happ03.h.s.com:8009 route=worker3 loadfactor=5 timeout=15 retry=5
BalancerMember ajp://happ04.h.s.com:8009 route=worker4 loadfactor=5 timeout=15 retry=5
BalancerMember ajp://happ05.h.s.com:8009 route=worker5 loadfactor=5 timeout=15 retry=5
ProxySet lbmethod=bytraffic
ProxySet stickysession=JSESSIONID
</Proxy>
ProxyPass /context balancer://happcluster/context
ProxyPass / balancer://happcluster/context/
<Location /context/>
# Rewrite HTTP headers and HTML/CSS links for everything else
ProxyPassReverse /
ProxyPassReverseCookieDomain / app.domain.com
ProxyPassReverseCookiePath / /context
ProxyHTMLURLMap /context/ /
# Be prepared to rewrite the HTML/CSS files as they come back
# from Tomcat
SetOutputFilter INFLATE;proxy-html;DEFLATE
</Location>
Кто нибудь сталкивался с подобной ситуацией?
Итак, я понял, в чем проблема. Мне пришлось отменить следующий параметр
ProxyPassReverseCookiePath /context /
Теперь я не теряю JSESSIONID.