2012-07-03 3 views
0

Как работает сеанс одного и того же пользователя, когда балансировщик нагрузки используется с разными веб-серверами на бэкэнд. Другими словами, можно предположить, что существует балансировка нагрузки для распределения нагрузки между разными серверами, и пользователь направляется на один сервер, где хранится его сеанс, а затем в следующий раз тот же самый пользователь перенаправляется на второй сервер. Как сервер знает, является ли он одним и тем же пользователем? как поддерживать его, что он был одним и тем же пользователем на обоих серверах.Управление сеансами между разными серверами

+0

Является ли это для приложения ASP.NET или PHP? –

+0

Общий вопрос, и мне просто нужен общий ответ, как, как это делается вообще, вопрос интервью, который вы можете сказать –

ответ

0

Я сделал это, изменив файлы формы хранилища сеансов в другую систему, которая может обрабатывать соединения tcp (в моем случае memcache, но вы даже можете использовать mysql как она)

Memcache решение: для расширения

кэша памяти
session.save_handler = memcache 
session.save_path = "tcp://localhost:11211" 

для Memcached

session.save_handler = memcached 
session.save_path = "localhost:11211" 

, но, конечно же, Вы должны изменить локальный хост на ваш DNS/IP

проверить его в ручной Sessions support

+0

Можете ли вы подробнее рассказать о своем решении, пожалуйста, –

+0

Я продлеваю свой ответ – pomaxa

0

Вашей балансировке нагрузки может быть выполнен с возможностью направлять тот же пользователь/клиент к одному серверу. Единственный момент, когда это становится «сложным», - это прыгать между SSL и необеспеченным трафиком, но это все еще можно настроить на балансировщике нагрузки.

Если по какой-либо причине вы не можете этого сделать, вы можете сохранить/получить состояние сеанса на SQL-сервере. См. this article for direction.

Смежные вопросы