Есть ли проблемы с использованием сессий PHP в кластере серверов? - PullRequest
1 голос
/ 13 июля 2010

Мы разрабатываем веб-сайт на PHP, и мы должны использовать сессии. Сайт будет опубликован в кластере серверов. Как мы можем заставить эту работу?

Спасибо.

Ответы [ 4 ]

3 голосов
/ 13 июля 2010

Да, это возможно, вам нужно хранить свои сессии в центральном месте, например, в базе данных.Это довольно просто и требует от вас внести некоторые изменения в session_set_save_handler - здесь есть хороший пример процесса, которому нужно следовать здесь

1 голос
/ 13 июля 2010

Я бы использовал memcache для хранения ваших сессий. Это будет намного быстрее, чем хранить их в базе данных или на диске.

Хранилище базы данных хорошее, но вам понадобится больше баз данных, когда ваш сайт станет очень посещаемым. Сессии на диске также вызовут много проблем с вводом-выводом, когда ваш сайт получает много трафика. Memcache, с другой стороны, масштабируется намного лучше, чем БД и файлы.

Я лично использую memecache, и сайты, на которых я работаю, получают миллионы посещений в день. У меня никогда не было проблем с хранением сессий в memcache.

0 голосов
/ 13 июля 2010

Если у вас есть несколько блоков PHP, вам понадобится центральное хранилище сеансов.

Ваш лучший выбор, вероятно, - база данных (эта ссылка из ответа sawgee - хорошее объяснение) или выделенная memcache коробка.

0 голосов
/ 13 июля 2010

Было бы возможным использовать совместное монтирование NFS для каталога сеанса, хотя я всегда считал, что производительность nfs немного медленная.Альтернативой является написание собственного обработчика сеанса с использованием memcache или базы данных для сеансов.

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

...