Назад | Перейти на главную страницу

Как использовать PHP memcached для хранения сеансов с автоматическим масштабированием?

у меня уже есть 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.