PHP хранит информацию о сеансе в файловой системе хоста сервера, устанавливающего этот сеанс. В среде PHP с несколькими хостами, где нагрузка нераспределяется между каждым хостом, переменные сеанса PHP недоступны для каждого запроса (если только случайный запрос не назначен на тот же хост - предположим, что у нас нет контроля над балансировщиком нагрузки) ,Каков наилучший способ обработки сеансов для PHP-сайта на нескольких хостах?
This site, dubbed "The Hitchhikers Guide to PHP Load Balancing" предлагает переопределить обработчик сеанса PHP и хранить информацию сеанса в общей базе данных.
Что, по вашему скромному мнению, является наилучшим образом способ поддерживать информацию о сеансе в среде с несколькими PHP-хостами?
ОБНОВЛЕНИЕ: Спасибо за отличную обратную связь. Для тех, кто ищет пример кода, мы нашли useful tutorial on writing a Session Manager class for MySQL, который я рекомендую проверить.
Althought я согласен, что DB + memcached - лучшее решение, я не буду так бояться, что он сбой будет больше, чем БД. и когда он переполняется, он должен начинаться с самых старых записей, поэтому принудительный выход будет самым ленивым пользователям. не так уж плохо, если это редко встречается – Javier 2008-10-22 16:58:24