Ограничение сеанса на веб-сервисах Amazon - программирование
Подтвердить что ты не робот

Ограничение сеанса на веб-сервисах Amazon

Я немного запутался в использовании липкой сессии на Amazon Web Services. Когда я разворачиваю свое java-приложение с помощью Amazon Elastic Beanstalk, я могу выбрать включение липкости сеанса, а затем указать период истечения срока действия файла cookie.

В моем приложении используются файлы cookie для сеанса (JSESSIONID), а также для других мелочей. Большая часть веб-сайта доступна только после входа в систему (я использую Spring для управления ею). Веб-сайт будет работать до 25 небольших экземпляров EC2.

Должен ли я включать липкость сеанса? Если я не включил его, значит ли это, что я мог быть удален из системы, потому что балансировщик нагрузки взял меня на другой сервер (а не на сервер, который прошел проверку подлинности)? Если я включу личность сеанса, я выйду из системы, когда сервер, прошедший проверку подлинности, отключится? В принципе, почему и когда я должен использовать липкость сеанса?

Большое спасибо.

4b9b3361

Ответ 1

Если я не включил его, значит ли это, что я могу быть удален из системы, потому что балансировщик нагрузки взял меня на другой сервер (а не на сервер, который прошел проверку подлинности)?

Да

Если я включу личность сеанса, я выйду из системы, когда сервер, прошедший проверку подлинности, отключится?

Да

При использовании Elastic Beanstalk с типичным Java Webapp я думаю, что вы обязательно захотите включить липкость сеанса. В противном случае каждый HTTP-запрос из пользовательского браузера может быть перенаправлен на другой сервер.

Чтобы обойти проблему разрушения пользовательского сеанса, когда сервер "застрял", чтобы закрыть его, вам нужно будет изучить репликацию сеанса Tomcat. Это не то, что Elastic Beanstalk поставляется с коробкой, к сожалению, поэтому, чтобы настроить репликацию сеанса, вам нужно будет создать пользовательский Elastic Beanstalk AMI для вашего приложения. Кроме того, вам придется использовать реализацию репликации сеанса Tomcat которая не зависит от многоадресной передачи, поскольку многоадресная рассылка недоступна в AWS или в любой другой облачной среде, в которой я знать о. Примером реализации, которая не полагается на многоадресную рассылку, является та, которая использует базу данных (например, Amazon RDS) или сервер memcached (например, Amazon Elastic Cache), чтобы сделать сеансы доступными для нескольких экземпляров Tomcat.

Также обратите внимание, что пользовательский интерфейс Elastic Beanstalk позволяет вам разрешать HTTP файлы, созданные с помощью балансировки нагрузки. Однако после того, как Elastic Beanstalk создала балансировщик нагрузки, вы можете войти в консоль EC2 и изменить настройки балансировки нагрузки, чтобы переключить их на HTTP файлы, созданные приложением, и затем сообщить ему, чтобы использовать файл cookie "JSESSIONID".