私のホスティングは、サーバーを同じVLANに配置するために、月額50ドルの料金を請求しているので、ネットワーク負荷分散機能を使用してクラスターを作成します。
サーバー間で負荷を分割する必要はありません。サーバーの障害から保護するためのフェイルオーバーシナリオを作成する簡単な方法を探していました。しかし、この料金は少し高いと思います。
NLBを使用せずにクラスターを作成する方法はありますか?プライマリサーバーを監視し、ドメインがダウンしたときにドメインのDNSを変更するものでしょうか。
DNSは、フェイルオーバーをシミュレートするのに適していません。理由は
私の提案は
彼がこれを非常に詳細にカバーしているので、 Scalable Internet Architecturesby Theo Schlossnagle を読むことを強くお勧めします
ldirectordを使用して、Webサーバーを監視し、現在稼働しているサーバー間の負荷分散を行う別の負荷分散ボックスを設定できます(さらに、1つのサーバーがダウンしてもサイトを維持します)。 。このソリューションを使用して、サイトの稼働時間に影響を与えることなく、2つのWebサーバーのいずれかを再起動できるようにします。
実際、WebサーバーがLinuxボックスの場合は、Webサーバー自体でldirectordを実行し、heartbeatを使用してldirectordをライブで実行し続けることができます。ボックス。
このソリューションを使用すると、2つ以上のボックス間で共通のIPアドレス(または複数)を共有し、DNSの問題を完全に回避できます。
1つの方法は、サイトを2つの異なるサーバーに配置し、メインサーバー(DNSが通常指す場所)への接続を監視する3番目の場所にサイトモニターを配置することです。サイトがダウンしていることを検出した場合は、モニターにスクリプトを実行させるか、ダイナミックDNSプロバイダーの更新URL( DtDNS [私が操作している]、または DynDNS.comなど)をヒットさせます。 )ドメイン/ホスト名に指定されたバックアップサーバーのIPアドレス。これにより、DNSレコードが更新され、トラフィックがバックアップWebサーバーに転送されます。メインサイトがオンラインに戻ると、監視は「実際の」IPを元に戻す別のスクリプトまたはURLを実行できます。
ここで重要なのは、システムにAPIを組み込んだプロバイダーでDNSをホストして、ドメインをすばやく更新できるようにし、訪問者が比較的リダイレクトされるようにTTLを十分に低く保つことです。早く。
もう1つは、サイトを外部の客観的な場所から監視する必要があることです。サイトと同じWebサーバーで監視を実行することはできません。サーバー全体がダウンした場合、監視/更新メソッドはサーバーと一緒にダウンします。
SimpleFailover 多かれ少なかれあなたが望むことをします。 DNSはキャッシュされるため、完全なソリューションではないことを忘れないでください。
複数のAレコードに関して、最近、VistaおよびWin Server 2008の実装に関する議論を目にしました RFC3484 、つまり、ラウンドロビンに依存できず、これらのクライアントからサーバーの負荷が不均一になる可能性があります。 。
DNS Made Easy DNSを設定して、サーバーがダウンした場合に別の場所を指すようにすることができます。私たちの場合、サイトがダウンしているという静的ページがあります。後でもう一度やり直してください。
このようにDNSを使用する場合は、キャッシュの問題を回避するために、比較的短いTTLを構成する必要があります。