web-dev-qa-db-ja.com

DNSサーバーを使用してWebサイトの単純なHA(高可用性)を作成するにはどうすればよいですか?

ようこそ、

DNSサーバーを使用してWebサイトの単純なHA(高可用性)を作成するにはどうすればよいですか?

たとえば、私のWebサーバーの場合(理解を深めるために、実際には内部IPを使用していますが、他のホスティング会社になります)

192.168.0.120:80(オフライン)トラフィックは192.168.0.130:80に移動します


あなたは正しいです、私はもちろんフェイルオーバーについて考えていた悪い言葉「高い可用性」を使用します。

Aレコードで少数のIPを使用することは、単純な負荷分散に適しています。しかし、そうではない場合、「接続を確立できません」に対する失敗についてユーザーに通知したい場合(たとえば、表示ページ、Oopsサーバーがないと何かがおかしい、私たちはそれに取り組んでいます)。

私はこのようなものを設定することを考えていました

2つのDNSサーバー、1つはwwwサーバーにインストールされています

どちらもTTLが低い

私のドメインでは、Apacheサーバーを他のDNSに次ぐDNS用に最初に2nsレコードを設定します

ユーザーが接続しようとすると、最初のDNSを使用してwwwサーバーのIPを取得し、そのDNSがオフラインの場合(おそらくwwwサーバーもダウンしている)、2番目のNSレコード、何が別のDNSを指すか)を試行しますdns、そのdnsは「バックアップ」ページを指します。

それが私がやりたいことです。

他にアイデアがあれば共有してください。

サーバーのIPが変更される可能性があるため、またはバックアップに他の国を使用できるため、リバースプロキシはオプションではありません。

3
marc22

DNSはnot高可用性フェイルオーバーのソリューションです。

DNSレコードのTTL)に関係なく、多くのクライアントはサイトのIPアドレスをキャッシュし、変更しても正しくフェイルオーバーしません。

より包括的な回答については、 この質問 を参照してください。

5
Alnitak

リバースプロキシ を使用できます

1
lrosa

DNSだけでそれを行うことはできません。また、サイトを監視し、一方が失敗したとき(そしてもう一方がまだ生きているとき)にサイト間でレコードを切り替えるための何かが必要です。あなたのためにそれを行う多くの商用サービスがあります(私はDynDNSが彼らのDynectブランドの下で行うことを知っています)またはあなたがあなた自身のDNSを管理するならあなたはそれをするためにいくつかのスクリプトまたはツールをまとめることができます、しかしそれは思ったほど簡単ではありません。

1
Cry Havok