Потеря JSESSIONID при использовании ProxyHTMLURLMap
Я настроил обратный прокси-сервер между внешним интерфейсом 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>
Кто-нибудь сталкивался с подобной ситуацией?
1 ответ
Я понял, в чем проблема. Я должен был изменить следующий параметр
ProxyPassReverseCookiePath /context /
Теперь я не теряю JSESSIONID.