у меня уже есть memcached
установлен на моих серверах, и я изменил значение по умолчанию php.ini
кому:
session.save_handler = memcached
session.save_path = "127.0.0.1:11211"
Я использую инстансы Amazon EC2 (Ubuntu 16.04 LTS) с автоматическим масштабированием и балансировщиком нагрузки, но у меня есть большой вопрос по поводу PHP memcached
. Во-первых, объясняя мою проблему: я сохранил sessions
в моем Server A
и есть еще один Server B
тоже работает. Но когда я останавливаюсь Server A
(что я связан с sessions
), балансировщик нагрузки перенаправляет меня на Server B
и похоже sessions
потеряны, потому что я отключен от своего веб-сайта, и он просит меня войти снова.
И я прочитал этот отрывок об использовании memcached для хранения сеансов на нескольких серверах (из Вот):
В вашем php.ini вы должны установить session.save_path в список серверов memcached, например server1: 11211, server2: 11211.
Но как я могу сказать, кто будет server1:11211
и server2:11211
Я использую автоматическое масштабирование и могу иметь "n" серверов?
Ваш сервер (ы) memcached должен быть вне вашей ASG. Как известно, состояние не может храниться в экземплярах ASG. Итак, либо используйте сервис AWS Elasticache, либо запустите свой собственный сервер memcached, а затем укажите туда свои экземпляры ASG.