Обрабатывать сеансы с помощью балансировщика нагрузки? - PullRequest
1 голос
/ 01 января 2011

Может быть, это очевидно, но если у меня используется балансировщик нагрузки или несколько серверов, сеанс пользователя идет с 1 сервера, поэтому, если пользователь нажимает сервер 2 или 3, это означает, что сеанс пользователя истекает или как заставить его работать как обычно?

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

EDIT: Использование PHP codeignitor. В настоящее время у меня есть 1 выделенный сервер, но в процессе добавления еще 2 серверов, поэтому, прежде чем я добавлю те, которые мне нужно знать, будут ли сеансы работать или если потребуется повторное выполнение кода сеанса снова.

1 Ответ

1 голос
/ 01 января 2011

Хранение данных сеанса в общем хранилище (например, на сервере memcached), к которому имеют доступ все серверы приложений.

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

Поскольку вы используете PHP, вам может пригодиться запись в блоге http://kevin.vanzonneveld.net/techblog/article/enhance_php_session_management/ (описывающая использование memcached для хранения сессий PHP).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...