У меня проблема с сессиями. Когда я пробую свой проект из локальных источников и несколько раз обновляю JSP, который содержит следующий код:
<h1>Session ID=<%=session.getId()%></h1>
Он всегда отображает один и тот же идентификатор. Хорошо.
Проблема в том, что я развернул проект на удаленном сервере, и когда я перезагружаю тот же JSP, он возвращает мне другой идентификатор сеанса каждый раз, когда я обновляю страницу.
Что я делаю неправильно?
PS. Удаленный сервер использует https (сертификат SSL) и обратный прокси-сервер NGINX (если эта информация поможет...).
PS2. Дополнительная информация: если я получаю доступ к удаленному серверу, используя его IP и порт, кажется, что это работает, давая мне один и тот же идентификатор сеанса каждый раз, когда я обновляю страницу.
После многих исследований я решил эту проблему, изменив некоторые файлы конфигурации в NGINX и Tomcat.
В NGINX я удалил строки proxy-cache
, которые я написал в конфигурации сервера.
В Tomcat я установил context.xml
следующим образом:
<Context path = "/"
reloadable = "false"
override = "true"
useNaming = "false"
allowLinking = "true"
useHttpOnly = "false"
sessionCookiePath = "/"
sessionCookiePathUsesTrailingSlash = "false"/>
И это работает! :)
Привет, это проблема конфигурации сервера, а не проблема программирования. Stack Overflow предназначен для программистов, а не администраторов серверов. Продолжите свои исследования в Server Fault.