Я использую tomcat7 с oracle-java8 в Ubuntu16.04.
И я запускаю 2 разных экземпляра tomcat для балансировки нагрузки, но поведение по умолчанию таково, что сессия не может делиться между ними.
Поэтому я обратился к решению с использованием RedisSessionManager.
После того, как я добавил следующие строки в файл tomcat conf/context.xml
(, конечно, я добавил фляги зависимостей в директорию lib ):
<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
host="127.0.0.1"
port="6379"
database="0"
password="defuRedis2017"
maxInactiveInterval="60" />
Затем запустите один экземпляр tomcat.
Но после этого сервер, похоже, больше не может сохранять сеанс и вернул другой Set-Cookie *Заголовок 1016 * в каждом запросе, поэтому вход в систему больше не может работать даже с одним экземпляром tomcat.
Если я закомментирую вышеприведенные строки (в файле context.xml
), сеанс будет работать как положено.
Так что же мешает работать с RedisSesssionManager
?