2013-12-17 7 views
0

Я разрабатываю сайт jsp с использованием tomcat в качестве backend и apache как перенаправление интерфейса с помощью mod_proxy.новый сеанс после каждого запроса, tomcat backend, apache frontend

Сначала мои конфиги.

апач:

ProxyRequests Off 
<Proxy *> 
Order deny,allow 
Allow from all 
</Proxy> 
SSLProxyEngine on 
ProxyPass/https://realdomain.tld:8443/proj1/ 
ProxyPassReverse/https://realdomain.tld:8443/proj1/ 
<Location /> 
Order allow,deny 
Allow from all 
</Location> 

Когда я перезагрузить мой Jsp сайт, каждый раз, когда я получаю новый идентификатор сессии. При разработке на localhost без apache и mod_proxy все работает, и я сохраняю один и тот же идентификатор сеанса.

Для моего webapp важно сохранить ту же сессию в течение времени.

Любая идея, как я могу сказать apache, чтобы сохранить сеанс. Я предполагаю, что apache должен перенаправить cookie на tomcat? но как ...

ответ

1

Каждый раз, когда вы меняете путь контекста в прокси (/ -> proj1), вы создаете целую кучу проблем для решения. Ваша немедленная проблема с cookie может быть решена с помощью директивы ProxyPassReverseCookiePath. Тогда я подозреваю, что вы найдете следующую проблему для решения. Вам лучше отказаться от повторного развертывания вашего приложения в качестве веб-приложения ROOT, чтобы ваша директива ProxyPass была ProxyPass/https://realdomain.tld:8443/

В стороне, похоже, вы подключаетесь к разъему https от Tomcat. Если вы не будете осторожны, вы создадите проблемы безопасности для себя, если httpd получит запросы через http, проксирует их до Tomcat через https, а Tomcat обрабатывает эти запросы как полученные по защищенному каналу.

+0

ProxyPassReverseCookiePath решил это для меня. Я не видел, чтобы возникали другие проблемы. Благодаря! – tuxmania

Смежные вопросы