1

У меня есть сайт https://en.mypen.net, который позволяет пользователям входить в систему с помощью facebook и google.Использование входа в facebook на нескольких сайтах виртуальной машины ec2

Сайт размещен на AWS. проблема заключается в том, что когда у меня есть более 1 машины virtaul, getSessionFromRedirect() возвращает сеанс, только если Im перенаправлен на тот же компьютер. Поскольку у меня сейчас 3 машины, она работает только на 33%.

Адрес такой же. Любая идея, почему это происходит? Я использую CNAME от en.mypen.net до elsatic beanstalk.

ответ

0

В настоящее время информация о сеансе существует на сервере. Когда у вас есть 3 сервера, сеанс существует только на одном из них. Есть два возможных решения вашей проблемы:

  • настроить distributed session store так, что, когда сеанс создается одним сервером он становится доступным для всех других серверов. Это наиболее масштабируемый и отказоустойчивый вариант.
  • Включить sticky sessions. Это самый быстрый и простой вариант. Просто имейте в виду, что если Elastic Beanstalk уменьшит количество экземпляров, некоторые сеансы будут уничтожены.
+0

, но я даже не создаю сеанс на этой странице. facebook SDK создает его для меня? И если да, могу ли я изменить способ создания сеанса? –

+0

Аутентификация происходит через Facebook, но сервер все еще создает сеанс для отслеживания того, что пользователь прошел аутентификацию. –