なぜこれをしたのですか?
サイトのページ読み込み速度は、このサイトがホストされているサーバーからユーザーがどれだけ離れているかによって大きく影響されることはよく知られています。
ユーザーが主に1つの地域からサイトにアクセスする場合-ダウンロード速度の問題は簡単に解決されます-サイトはこの地域に物理的に配置されているサーバーに配置されます。 しかし、サイトが互いに離れた複数の地域、または世界中から来た場合はどうでしょうか?
独自の
CDN (
コンテンツ配信ネットワーク、コンテンツ配信システム )を開発し、新しいサービス-
ジオホスティングを提供することで、この質問に答えようとし
ました 。
ジオホスティングでは、地理的に離れたデータセンターにある複数のサーバーにサイトを一度に配置し、地理的に近いサーバーから情報がユーザーに提供されるようにシステムを編成します。
これをどうやってやったの?
コンテンツ配信システムを構築するための最初のステップとして、ウクライナ、ロシア、米国のデータセンターに3台のサーバーを設置しました。
コンテンツは各サーバーに保存されます。 システムは、サイトオーナーが分散アーキテクチャで動作するようにWebアプリケーションの動作を変更する必要がないように機能します。 ユーザーには、情報を管理およびサーバーにアップロードするためのコントロールパネルをホストするcPanelが提供されます。
まず、サイトデータのファイル構造への変更をコピーできるシステムを見つける必要がありました。 さらに、すべての方向、つまり、ジオホスティングのどこからでもサイトファイルに変更が加えられた場合、データを同期する必要があります。 この問題を解決するために、
Unisonプログラムを選択しました。 複数のサーバー間で同時にデータをコピーする十分な機会があります。
原則として、データを同期することはできませんでしたが、1つのファイルサーバーを使用してデータを保存し、ジオホスティングポイントをこのサーバーに接続することができましたが、このスキームでは、ファイルサーバーの障害はシステム内のすべてのポイントの障害につながります。 この場合も、ファイルサーバー用のクラスターを作成できますが、このような組織のファイルサーバーへのフロントエンドサーバーアクセスの遅延の可能性を忘れないでください。
次に、DNSシステムの構築を開始しました。これは、ジオロケーションに関して最も近いサーバーにユーザーを送信するのを支援するのは彼女であったためです。 よく知られているGeoIPを使用します。 DNSシステムに
GeoIPを使用する特別なパッチをインストールすることにより、ユーザーを特定し、最も重要なこととして、ユーザーを目的の(最も近い)サーバーにリダイレクトできます。
つまり、次のように図式的に機能します。

CDNを構築する重要な手順は、データベースの同期の問題に対処することです。 ジオホスティングでは、master-slave-slaveシステムモデルを使用します。つまり、1台のサーバーがマスターであり、他の2台のサーバーがそれを複製します。 スレーブサーバーは、データベースの変更についてマスターサーバーに定期的に問い合わせます。 したがって、マスターサーバーでのすべての変更はスレーブサーバーで繰り返されます。 これにより、2つのサーバーにデータの冗長性が作成され、高いデータ可用性と信頼性が実現します。 たとえば、通常のコピーと比べて、この複製の重要な利点は、すべてのデータではなく、ネットワーク上で行われた変更のみを転送することです。 マスターサーバーは、データベース内のすべての変更を「バイナリログログ」に書き込み、各操作に番号を割り当てます。 スレーブサーバーがメインサーバーにアクセスすると、ホームですでに実行された最後の操作の数を報告し、この数からカウントしてすべての新しい変更を受け取ります。
このアーキテクチャは、オンラインサーバーの監視に非常に便利な
Zabbixを使用して制御します。 その助けを借りて、マスターとその2つの複製サーバーの両方の作業を制御します。 Zabbixは、DNSサーバーシステムも監視します。これは、ジオホスティングシステムにおける非常に重要なリンクです。
何を得たの?
お客様の1人が、彼のサイトで開発をテストすることに親切に同意しました。 仕事の結果は彼と私たちを満足させました。
最初のスクリーンショットは、ウクライナの1つのサーバーにあるサイトの調査結果(世界のさまざまな部分から)を示しています。

2つ目-3つのサーバーでホストされているサイトの調査-ウクライナ、ロシア、米国:

そして、明確にするために、図での比較:

これまでに何が失敗しましたか?
マルチサイトアカウントに対してこのようなソリューションを作成します。 これまでのところ、1つのサイトオプションのみが機能します-1つのcPanelアカウント。
副作用
ここで大丈夫です:)
主なタスク-アクセス速度の向上に加えて、ジオホスティングにはさらにいくつかの利点があります。
- サイトへのリクエストのフローの再配布、および特定の地域からのリクエストを制限する機能により、DDOS攻撃に対する脆弱性が減少します。
- サイトによって作成された負荷は複数のサーバーに分散されます。
また、より有用な「副作用」を見つけるために、構築されたシステムの開発を続けています。
入手方法
1か月間無料で入手できますが、テスト中です。 次に
、ページの支払い済みの詳細。
また、この提案は基本的なものですが、クライアントの要望に喜んで応え、VPSおよびサーバー用に同様のシステムを構成します。また、サイトを拠点3以外のサーバー(ウクライナ、ロシア、米国)に配置することも検討できます。