2

独自のRDS データベースサーバーを備えた単一の AWS EC2サーバーにMediaWikiアプリケーションをインストールしていますが、これはうまく機能します。ロード バランシングの目的で、追加の Web サーバー トラフィックを処理するロード バランサーを備えた別の EC2 サーバーをインストールしました。

LocalSettings.php を編集し、負荷分散された URL $wgServer = " http://xxxxxxxxx.elb.amazonaws.com "を指定してから、Apache サーバーを再表示しました。

アプリケーションが一貫して動作しなくなりました。症状の一部を次に示します。

  1. ログイン後、エンド ユーザーには、ユーザーがまったくログインしていないかのようにログイン リンクが表示されます。
  2. データは、ユーザーが情報を編集する場合とそうでない場合があります。

ロード バランサーの Web サーバーの 1 つをシャットダウンした後、すべてが正常に機能するようになりました。これは、セッション状態などが原因であると思われます。

負荷分散された環境でアプリケーションを動作させるにはどうすればよいですか?

https://meta.wikimedia.org/wiki/Help:Logging_andも調べて情報を検索しましたが、これを解決する方法の手がかりが得られません。

https://releases.wikimedia.org/mediawiki/1.22/mediawiki-1.22.6.tar.gzからEC2 Linux サーバーにインストール。

4

2 に答える 2

3

はい、ユーザーのセッションが両方の EC2 インスタンスに分散されていないことが原因です。Mediawiki がセッション データを保存する方法を変更できます。この回答では、MySQL の使用について説明しています。両方の EC2 インスタンスで Mediawiki に変更を加えた後、ユーザーのセッションは両方のインスタンスで利用できるようになります。

(理想的ではない) 代替手段は、AWS ELB でSticky Sessionsを構成することです。

于 2016-10-13T15:32:11.120 に答える
0

AWS sdk ( https://aws.amazon.com/ru/blogs/aws/scalable-session-handling-in-php-using-amazon-dynamodb/ ) から DynamoDB セッション処理を使用することもできますが、それは書く必要がありますMediawiki の小さな拡張機能。

于 2016-10-14T13:04:07.777 に答える