У нас есть приложение Drupal, которое использует sso для входа в систему.
Мы используем классические балансировщики нагрузки AWS (ELB), AWS сообщает нам, что на ELB нет постоянных сеансов.
То, что я пытаюсь выяснить, - это то, как cookie-файлы работают без постоянства на классических балансировщиках нагрузки.
Пример.com DNS указывает на ELB. Есть 2 сервера в пуле Server1 и Server2
То, что мы хотим сделать, - это если пользователь нажимает на свою домашнюю страницу, http://example.com/user/12345/
скажем, на сервере 1, если он еще не вошел в систему, он перенаправляется на страницу sso http://example.com/user/login/sso
, автоматически входит в систему и получает файл cookie, SESS<hexnumber>
а затем перенаправляется обратно наhttp://example.com/user/12345/
Нам не разрешается добавлять какие-либо серверы сеансов (redis), что является гарантией того, что они будут оставаться на сервере 1 для обоих перенаправлений.
Насколько мне известно, при каждом обращении к «example.com» пользователь может оказаться на сервере 1 или 2.
Мой вопрос:
Если они получают cookie на server1, а затем перенаправляются на server2, как server2 узнает, что cookie уже назначен этому пользователю на server1?
Кажется, я думаю о себе в кругах. При работе с этим типом установки в прошлом с использованием LB без сохранения сеанса мы использовали сервер redis для хранения сеансов, и каждый запрос просматривал сервер redis для получения информации о сеансе.
example.com
если пользователи получают куки, тогда держать их на www1.example.com или www2.example.com?