web-dev-qa-db-ja.com

Wordpress on IIS robocopyによるレプリケーション

4台のサーバーにwordpress環境をセットアップします。IISサーバー。ロボコピースクリプトをトリガーするスケジュールされたタスクを使用して、wordpress 5分ごとのディレクトリ。

そのようなアプローチについての意見は何ですか?誰かがこれまたは同様のものを使用したことがありますか?

10
joebegborg07

すべての提案の人々に感謝します。

私たちのソリューションは、resilioと呼ばれるツールを使用したピアツーピア同期アプローチを使用していました。

Resilioを使用すると、ピアツーピア同期クラスター内に多数のコンピューター(この場合はIISフロントエンド))を構成できます。クラスター内の各コンピューターからフォルダーが選択され、使用されます。同期プロセス。

Resilioサービス(バックグラウンドで実行されているWindowsサービス)は、これらのフォルダーに変更がないか監視し、問題のフロントエンドで指定されたフォルダーのいずれかに変更が加えられた場合、resilioはその変更を他のサーバーにプッシュします。

これが将来同様の問題に直面している他の人々の助けになることを願っています。

12
joebegborg07

同じファイルを同時に共有する4つのフロントエンドサーバーがあり、それぞれがディレクトリ同期専用の何らかのDFSまたはサードパーティプログラムを使用せずに書き込むことができるのは悪夢です。

Azureを使用すると、3つのことを調べることができます。

  1. 共有ストレージ。独自の専用ストレージの取得に関連するコストが発生する可能性があります。構成はわかりませんが、Azureはこれを提供します。これにより、すべてのファイルが書き込まれるとすぐに各サーバーで使用できるようになります。

  2. Azure DFS、DFSは、Windowsベースのディレクトリ同期ツールであり、かなりうまく機能します。コストについてもわかりませんが、構成は少し簡単かもしれません。 DFSは非同期で動作するため、多少の遅延はありますが、それほど多くはありません。

  3. (これがどのように行われるかを説明し、それについては二度と話さないでください。これは恐ろしい考えであり、失敗するためです。)最初に4つのサーバーすべてのデータを比較し、次に差分データをコピーするスクリプトを作成します。スクリプトを実行している1つのサーバーに各ディレクトリを共有し、サーバーが読み取りと書き込みを行えるように権限を設定してから、トラブルシューティング、トラブルシューティング、トラブルシューティングを行う必要があります。

上記のどちらのオプションでも機能します。仕事がこの作業に依存している場合は、オプション3を使用しないことをお勧めします。

そうは言っても、あなたはお金を使おうとはしていません。以下の手順に従ってください。

  1. 「無料ファイル同期」と呼ばれるプログラムを見てください。無料版には本当に良い機能がいくつかあります。有料版があると思いますが、得られる機能強化についてはよくわかりません。私は、あなたがやろうとしていることに似た何かを達成しようとして、DFSをセットアップするのが面倒だったときに、多くの開発環境でそれを使用しました。

  2. 書き込み可能なサーバーを1つだけにします。これは、各サーバーでURIを構成して、記事の作成をServerAに移動するか、web.configでURLを書き換えるか、またはWordPress phpの使用です:

    header( 'Location: http://myhost.com/mypage.php ');

それぞれに少しのコーディングとPHP、IISの知識が必要です。

  1. ServerAが作成者サーバー(書き込み可能なサーバーのみ)であるという本当に楽しい部分です。ロードバランサーなしで読み取るために、トラフィックをServerB、ServerC、およびServerDにどのように転送しますか?

簡単な答えはできませんが、それは正確には当てはまりません。ロードバランサーを使用しないことに固執した顧客が、一連のPowerShellスクリプトを使用して、サーバー間で接続を移動することができました。ワーカーは各ボックスまたはそのようなもので処理します。いずれにせよ、行うのは非常に難しく、時間とエネルギーを費やす価値はありません。

サーバーでネットワーク負荷分散を構成できないかどうかを確認します。追加のIPが必要になりますが、DNSの変更は1つだけであり、トラフィックを3つのサーバー間で読み取るために分散できます。

幸運を!

12
Anthony Fornito

スケジュールされたタスクはないと思います。Robocopyは優れたアプローチです。 5分のウィンドウのため、リソースが要求されても、ロードバランサーによって選択されたサーバーがリソースを使用できない場合があります。大部分が静的なサイトの場合、これは、頻繁に変更されるビジーなサイトよりもはるかに少ない頻度で発生します。より高い周波数またはBittorrentSync(現在は Resilio Sync と呼ばれています)のような別の同期テクノロジーを使用すると、これはかなり改善されますが、問題が解消されるわけではありません。

Wp-contentまたはwp-content/uploadsフォルダーだけを共有ドライブに置くと、より良い解決策になります。これを確認する別の方法は、サーバーの1つにそのフォルダーをホストさせ、他のサーバーにそれを共有させることです。ディスクキャッシュを使用すると、サーバーの負荷が他のサーバーよりもそれほど高くなることはありません。

更新

ページキャッシュに関するアイデアについては この記事 を、CDNについては これ をご覧ください。これはNginxに関するものなので、IISで解決する必要がありますが、その背後にある理論はどのWebサーバーでも有効です。

11
Tim