У меня есть два сервера httpd, на которых работает PHP на RHEL 5.7. Первоначально я разделял сеансы PHP между серверами, используя общий ресурс NFS, который размещался на третьем сервере. Это приводило к замедлению работы и, в конечном итоге, зависанию на серверах httpd.
Как лучше всего использовать данные сеанса PHP между несколькими интерфейсными серверами httpd?
Производитель рекомендует использовать постоянство соединения с балансировкой нагрузки через cookie или исходный IP-адрес, но я обеспокоен тем, что сбой на одном из серверов httpd приведет к тому, что пользователи потеряют данные сеанса и выйдут из системы (например).
Мысли?
Спасибо!
Либо поместите свои сеансы в свою (надеюсь, реплицированную) базу данных, либо используйте реплицированные memcached серверы для ваших сессий.
Один из легких вариантов тестирования: Scache. Но прочтите это введение, при использовании $ _SESSION в многосерверной среде возникают проблемы с блокировкой.
Это результат того, что я использую для разных клиентов:
В настоящее время он основан на ZF, но его можно легко расширить для работы с другими фреймворками. Идея состоит в том, чтобы использовать как Memcache, так и MySQL в качестве резервной копии. Поскольку он использует ext/memcache
(многие предлагают придерживаться версии 2.x-stable) Я могу добавить несколько серверов, чтобы расширение реплицировало данные между ними.
Не уверен на 100%, что это лучшая идея, вы можете добиться того же и в коде пользовательского пространства.