у меня есть Обсуждение MediaWiki приложение установлено на один AWS EC2 сервер со своим База данных RDS сервер, который хорошо работает.
В целях балансировки нагрузки я установил еще один сервер EC2 с балансировщиком нагрузки для обработки дополнительного трафика веб-сервера.
Я отредактировал LocalSettings.php и указал его на URL с балансировкой нагрузки $ wgServer = «http://xxxxxxxxx.elb.amazonaws.com« , Затем я переустановил серверы Apache.
Приложение больше не работает последовательно — вот некоторые из симптомов.
После того, как я отключил один из веб-серверов в балансировщике нагрузки — все снова работает хорошо. Я подозреваю, что это связано с состояние сеанса и т.п.
Как я могу заставить приложение работать в среде с балансировкой нагрузки?
Я также посмотрел на https://meta.wikimedia.org/wiki/Help:Logging_and искал информацию в, но это не дает мне подсказки, как решить эту проблему.
Установлено с https://releases.wikimedia.org/mediawiki/1.22/mediawiki-1.22.6.tar.gz на сервере Linux EC2.
Да, это связано с тем, что сеансы пользователя не распределяются по обоим экземплярам EC2. Вы можете изменить способ хранения данных сеанса в Mediawiki. Этот ответ описывает используя MySQL. После внесения изменений в Mediawiki в обоих экземплярах EC2 сеанс пользователя будет доступен для обоих экземпляров.
(Менее чем идеал) альтернатива заключается в настройке Липкие Сессии на AWS ELB.
Вы также можете использовать DynamoDB Session Handling из AWS SDK ( https://aws.amazon.com/ru/blogs/aws/scalable-session-handling-in-php-using-amazon-dynamodb/ ) хотя для этого потребуется написать крошечное расширение для Mediawiki.