Время сеанса истекло на 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>
Другие вопросы по тегам