Проблемы с сеансами размещения MediaWiki на AWS / EC2 в среде с балансировкой нагрузки

у меня есть Обсуждение MediaWiki приложение установлено на один AWS EC2 сервер со своим База данных RDS сервер, который хорошо работает.
В целях балансировки нагрузки я установил еще один сервер EC2 с балансировщиком нагрузки для обработки дополнительного трафика веб-сервера.

Я отредактировал LocalSettings.php и указал его на URL с балансировкой нагрузки $ wgServer = «http://xxxxxxxxx.elb.amazonaws.com« , Затем я переустановил серверы Apache.

Приложение больше не работает последовательно — вот некоторые из симптомов.

  1. После входа в систему конечному пользователю показывается ссылка для входа в систему, как если бы пользователь вообще не входил в систему.
  2. Данные могут или могут когда пользователь редактирует информацию.

После того, как я отключил один из веб-серверов в балансировщике нагрузки — все снова работает хорошо. Я подозреваю, что это связано с состояние сеанса и т.п.

Как я могу заставить приложение работать в среде с балансировкой нагрузки?

Я также посмотрел на https://meta.wikimedia.org/wiki/Help:Logging_and искал информацию в, но это не дает мне подсказки, как решить эту проблему.

Установлено с https://releases.wikimedia.org/mediawiki/1.22/mediawiki-1.22.6.tar.gz на сервере Linux EC2.

2

Решение

Да, это связано с тем, что сеансы пользователя не распределяются по обоим экземплярам EC2. Вы можете изменить способ хранения данных сеанса в Mediawiki. Этот ответ описывает используя MySQL. После внесения изменений в Mediawiki в обоих экземплярах EC2 сеанс пользователя будет доступен для обоих экземпляров.

(Менее чем идеал) альтернатива заключается в настройке Липкие Сессии на AWS ELB.

3

Другие решения

Вы также можете использовать DynamoDB Session Handling из AWS SDK ( https://aws.amazon.com/ru/blogs/aws/scalable-session-handling-in-php-using-amazon-dynamodb/ ) хотя для этого потребуется написать крошечное расширение для Mediawiki.

0

По вопросам рекламы [email protected]