Назад | Перейти на главную страницу

Потеря 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>

Кто нибудь сталкивался с подобной ситуацией?

Итак, я понял, в чем проблема. Мне пришлось отменить следующий параметр

ProxyPassReverseCookiePath /context /

Теперь я не теряю JSESSIONID.