4つのIISサーバーにワードプレス環境をセットアップしました。robocopyスクリプトをトリガーするスケジュールされたタスクを使用して、5分ごとにwordpressディレクトリを複製することを検討しています。
そのようなアプローチについての意見は何ですか?誰かがこれまたは類似のものを使用したことがありますか?
4つのIISサーバーにワードプレス環境をセットアップしました。robocopyスクリプトをトリガーするスケジュールされたタスクを使用して、5分ごとにwordpressディレクトリを複製することを検討しています。
そのようなアプローチについての意見は何ですか?誰かがこれまたは類似のものを使用したことがありますか?
回答:
同じファイルを同時に共有する4つのフロントエンドサーバーがあり、それぞれが何らかの種類のDFSやディレクトリ同期専用のサードパーティプログラムを使用せずに書き込むことができるのは、悪夢です。
紺碧を使用すると、3つのことを調べることができます。
共有ストレージ。独自の専用ストレージの取得に関連するコストが発生する可能性があります。Azureはこれを提供していますが、構成はわかりません。これにより、すべてのファイルが書き込まれるとすぐに各サーバーで使用できるようになります。
Azure DFS、DFSはWindowsベースのディレクトリ同期ツールであり、かなりうまく機能します。また、コストについてはわかりませんが、構成は少し簡単かもしれません。DFSは非同期で動作するため、多少の遅延はありますが、それほど多くはありません。
(これはどのように行われるかを説明し、それについては二度と話しません。これは恐ろしい考えであり、失敗します。)最初に4つのサーバーすべてのデータを比較し、次に差分データをコピーするスクリプトを作成します。スクリプトを実行する1台のサーバーで各ディレクトリを共有し、サーバーが読み取りと書き込みを行えるようにアクセス許可をセットアップしてから、トラブルシューティング、トラブルシューティングを行う必要があります。
上記のどちらのオプションでも問題ありません。あなたの仕事がこの作業に依存している場合は、オプション3を避けてください。
それは言われていて、あなたはお金を使わないでください、以下のステップに従ってください。
「無料ファイル同期」と呼ばれるプログラムを見てください。無料版には本当に良い機能がいくつかありますが、有料版があると思いますが、あなたが得る拡張機能についてはよくわかりません。私が開発環境の多くで使用しているのは、あなたが何をしようとしているかに似ていて、DFSをセットアップするのが面倒だったのと同じようなことを達成しようとしたときです。
1つのサーバーのみを書き込み可能にします。これは、記事の作成がServerAに移動するか、web.configでURLを書き換えるか、またはWordPressがphpを使用するかを示す各サーバーのURIを設定することで簡単に行えます。
header( '場所:http : //myhost.com/mypage.php ');
それぞれが少しのコーディングとPHP、IISの知識を必要とします。
答えは簡単ではありませんが、そうではありません。ある顧客が、負荷分散装置を使用せずに、一連のPowerShellスクリプトを使用して、あるサーバーから別のサーバーに接続を移動できるロードバランサーを使用しないことを強く求めていました。各ボックスまたはそのようなものでワーカープロセス。どちらにしても、実行するのは非常に難しく、時間とエネルギーを費やす価値はありません。
サーバーでネットワーク負荷分散を構成できないかどうかを確認します。追加のIPが必要ですが、DNSの変更は1つだけであり、トラフィックを分散して3つのサーバー間で読み取ることができます。
幸運を!
すべての提案の人々に感謝します。
私たちのソリューションは、resilioと呼ばれるツールを使用したピアツーピア同期アプローチを使用していました。
Resilioを使用すると、ピアツーピアの同期クラスターで多数のコンピューター(この場合はIISフロントエンド)を構成できます。クラスター内の各コンピューターからフォルダーが選択され、同期プロセスに使用されます。
resilioサービス(バックグラウンドで実行されるWindowsサービス)は、これらのフォルダーの変更を監視し、問題のフロントエンドで指定されたフォルダーのいずれかに変更が加えられた場合、resilioはその変更を他のサーバーにプッシュします。
これが将来同様の問題に直面している他の人たちの助けになることを願っています。
スケジュールされたタスクはないと思います。Robocopyは素晴らしいアプローチです。5分のウィンドウがあるため、リソースが要求される場合がありますが、ロードバランサーによって選択されたサーバーはリソースを利用できません。ほぼ静的なサイトの場合、これは頻繁に変更されるビジーなサイトよりもはるかに少ない頻度で発生します。周波数を高くするか、Bittorrent Sync(現在はResilio Syncと呼ばれます)などの別の同期テクノロジを使用すると、これはかなり改善されますが、問題は解消されません。
wp-contentまたはwp-content / uploadsフォルダーを共有ドライブに置くと、より良いソリューションになります。これを見る別の方法は、サーバーの1つにそのフォルダーをホストさせ、他のサーバーにそれを共有させることです。ディスクキャッシュを使用すると、サーバーの負荷が他のサーバーよりもはるかに高くなることはありません。
更新
ページキャッシングに関するアイデアについては、この記事をご覧ください。これはCDNに関するものです。これはNginxに関するものであるため、IISで使用する必要がありますが、その背後にある理論はどのWebサーバーでも有効です。