Время сеанса истекло на tomcat8 за apache2 ProxyPass
Для веб-приложения с именем whys, написанного с помощью VAADIN 7.3.8, я развернул сервер tomcat8 за сервером Apache (и перенаправил app.whys.fr на whys.fr:8080/Whys, где находится мое приложение).
Когда я захожу на http://whys.fr:8080/Whys, все выглядит хорошо, но когда я захожу на http://app.whys.fr/, я сразу получаю сообщение об истечении сеанса, и нет журналов, чтобы сказать мне, почему (ничего в catalina.out).
Вы можете проверить это самостоятельно, чтобы увидеть разницу;).
Вот моя конфигурация прокси:
<VirtualHost *:80>
ServerName app.whys.fr
ProxyRequests On
ProxyPass / http://localhost:8080/Whys/
ProxyPassReverse / http://localhost:8080/Whys/
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
</VirtualHost>
<VirtualHost *:80>
ServerName whys.fr
</VirtualHost>
и мой Tomcat Connector в server.xml:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
В apache2 включены mod_proxy,mod_proxy_http и mod_proxy_connect, время ожидания сеанса в файле web.xml составляет 30 минут.
РЕДАКТИРОВАТЬ: забыл упомянуть: мое приложение использует @Push (функция vaadin)
1 ответ
Проблема была с толчком Ваадина.
При активированной функции push вы также должны перенаправить файлы cookie через прокси-сервер, чтобы сохранить сеанс, в противном случае он мгновенно становится недействительным.
вот как это сделать с приложением vaadin push за прокси-сервером apache2:
<VirtualHost *:80>
ServerName yourdomain.tld
ProxyRequests On
ProxyPass / http://localhost:8080/yourApplication/
ProxyPassReverse / http://localhost:8080/yourApplication/
ProxyPassReverseCookiePath /yourApplication /
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
</VirtualHost>