サイトのIPアドレスを変更する最善の方法-エンドユーザーの観点から?


10

私は関連するQ / Aの束をここで読みましたが、最良の答えが何であるかはまだわかりません。

いくつかのサイトをIPアドレス「1.abc」から「2.def」に移動しています。現在、既存のDNSですべてのTTLを300秒に設定し、新しいDNSゾーンを(AWS Route 53で)使用する準備ができています。新しいネームサーバーとすべてのTTLは60秒です。DNSの観点からは、準備ができていると思います。移動後、数日後、Route 53でTTLをより適切な数値に設定します。

私はすべてのユーザーに移動について警告し、移動の時間帯を定義しました。移動が完了して24時間経過しても古い(ロックされた)サイトが表示される場合は、コンピューターを再起動してローカルDNSキャッシュを強制的にフラッシュする必要があることを伝えました。

ユーザーのブラウザ(キャッシュ)がこれにどのように影響するかわかりません。ローカルホストファイル(Win7)を使った私自身の実験では、古いIPアドレスを許可していないブラウザーについて何かがあることがわかりました - 新しいサイトの場所を表示するには、履歴に移動してすべてクリアする必要がありました。アップ、後もipconfig /flushdns

(編集)-私は古いサーバーへのrootアクセス権を持っていないため、この質問に対する承認済みの回答を実装できません。

質問: ユーザーにそれを処理してほしくないので、すべてのブラウザーを強制的に再キャッシュするためにできることはありますか?もしそうなら、それをオンにしておく時間はどれくらいですか?

ありがとう...


My own experiments with a local hosts file (Win7) tell me there is something about the browser that is not letting the old IP address goこれについていくつかの情報を提供できますか?Afaik、ブラウザはDNSレコードを1分以上キャッシュしません。
タンメイ2016

確かではありませんが、複数のipconfig / flushdnsと "ctrl-F5"(Firefoxの場合)を行った後、古いサイトと新しいサイトの両方からページの混合を取得し続けていました...最後に「すべて」をクリアして再起動する必要がありました。ブラウザ。ユーザーに同様のことをさせてほしくない...
CC

JBTW、提供したリンクのソリューションは、新しいサーバーへのrootアクセス権がある場合にも機能します。DNSレコードを更新し、DNSが適切に伝達されるまで、すべてのトラフィックを新しいサーバーから古いサーバーに転送します。
タンメイ2016

ありがとう...でも、後でもう一度古いものを新しいもの(データベースなど)に同期する必要がありますよね?
CC

転送をオフにする直前に、データベースを1回同期する必要があります。
タンメイ2016

回答:


15

いいえ、できません。問題は、DNS応答がユーザーとDNSサーバーの間のどこにでもキャッシュされる可能性があり、それらを無効にする方法がないことです。

ただし、できること-データが同期され、2番目のサイトの準備ができたら、元のサーバーを再構成してプロキシとして動作させ、すべてのリクエストを新しい場所に渡すことができます。

このようにして、Webサイトのダウンタイムをほぼ0にすることができます。

更新

rootアクセス権がない場合、いくつかのオプションがあります。

  • PHPでプロキシを実行する

  • 2番目のサーバーでプロキシを構成し(そこにrootアクセスがある場合)、DNSを切り替え、準備ができたらプロキシをWebサーバーに変更します。

  • この方法は問題の原因となる可能性があります 2つのアドレス(www.domain.tldとwww2.domain.tld)があります。www2(wwwと同じ)を構成し、正しいDNSレコードを設定します。次に、サイトのwwwバージョンを準備し、DNSの切り替えを行います。古いサーバーのすべての要求のリダイレクトをwww2サブドメインに設定します。


これについて少し拡張してもらえますか、それとも私が読むことができる記事またはQ / Aへのポインタがありますか?既存のサーバーへのrootアクセス権がないため、IPテーブルを直接操作することはできません...そのため、別の方法があるのでしょうか?
CC

@CC多分あなたはあなたのアプリケーションをHAProxyインスタンスで置き換えるアクセス権を持っていますか?または、アプリケーションコードを純粋にリクエストを新しいサーバーに転送する別のコードに置き換えますか?
Jason Martin

@JasonMartin-.htaccessとアプリケーションコードにアクセスできます。だから、はい、私はおそらく要求されたURLを取得して新しいIPアドレスに転送することができます-たぶんそれを試すべきですか?
CC

そのとき有望に思える@CC。DNSは「最終的に一貫した」ツールであり、一部のDNSサーバーはTTLに下限を設定し、300を無視します。そこでの中断を避けたい場合は、転送プロキシが最適です。
Jason Martin

4

理論的には、ドメインのTTLを低い値に設定し、その変更が行われるのを待ってから、IPを変更すると、ほぼ透過的な移行が行われるはずです。結局のところ、これがTTLが構成可能であることの要点です。

実際には、人々は物事を誤設定し、ツールが壊れます。そのため、正常に機能しない場合は、ローカルキャッシュをクリアするようにユーザーに指示する必要があります。

あなたは何も悪いことをしていません。


すぐに新しいAWS Route 53 DNSに切り替える必要があります- 古い IPアドレスを使用して-移行が完了したら、IPアドレスを新しいアドレスに変更するだけですか?-または、DNSを新しいもの変更し、同時にIPを変更しますか?
CC

1
@CC:私はネットワーク管理者ではないので、これを少々簡単に理解してください(そしてServerFaultの達人から別の方法で聞いてよかったです)が、個人的には両方を同時に変更しないことをお勧めします。DNSを整理してから、IPの変更を実行し、最後の部分を支援することで新しいDNSが機能するようにします。
オービットのライトネスレース

1
さて、実験してみました。あるサイトでは、DNS時間を事前に変更し、後でAレコードのIPアドレスを変更しました。完璧に働きました。もう一方のサイトは両方同時に変更しました。何時間もの間、古いIPアドレスと新しいIPアドレスの間でスラッシングが発生していました。AWSRoute 53ゾーンを最後に削除し、最初のサイトと同じ方法で再作成しました。完璧に働きました。だから、塩のピンチは必要ありません-あなたはスポットでした!
CC

1

必然的に、古いアドレスはキャッシュされ、長期間使用されます-主にボットによって使用されます。

どのようにそれを行うでしょう:

  • たとえばwww2.yourdomain.com、新しいIPを指すAレコードを作成します。このレコードは、以前は使用されていなかったはずです。したがって、キャッシュされることはありません。
  • 古いサーバーのクエリをリダイレクトする www2.yourdomain.com
  • リダイレクトを監視し、トラフィックが許容レベルに落ち着いたら、古いサーバーを削除します。
  • 最後に、古いサーバーが削除されたら、にリダイレクトwww2.yourdomain.comwww.yourdomain.comます。

必ず301永続リダイレクトを使用してください。https://en.wikipedia.org/wiki/HTTP_301


私の直感は、リダイレクトの最初のラウンドに301を使用するのではなく、2番目のリダイレクトにのみ使用することです。彼が難解なSEOの知恵を持っている人だけに知られているはずの特別な理由はありますか?
Random832 16

@ Random832パーマネントは、ユーザーエージェントに古いURLを忘れて、たとえば新しいURLをポイントするようにブックマークを更新するように指示します(次回、新しいURLに直接アクセスする可能性があります)。後で再度リダイレクトすること(または元のURLに戻すこと)に害はありません。一方、一時的なリダイレクトは、元のURLを維持するようにユーザーエージェントに指示します(リダイレクトは別のターゲットに発生する可能性があるか、次回はまったく発生しない可能性があるため)。したがって、一時的なリダイレクトでは、リダイレクトの監視が「許容レベル」に落ちることは決してありません
Hagen von Eitzen

@HagenvonEitzenブラウザーがwww.yourdomain.comの古いサーバーのIPアドレスを取得しなくなるため、許容できるレベルに落ちます。これはDNSであり、使用されるHTTPリダイレクトの種類の影響を受けません。したがって、「リダイレクトが発生する可能性があるため...次回はまったく発生しない」というのは、まさにそのとおりです。
Random832 2016

0

ネームサーバーを同時に変更することを計画しているようですね?ネームサーバーの検出方法により、通常のレコードよりも更新にかなりの時間がかかります(多くの場合24時間以上)。

DNSを変更する前に現在のプロバイダーでDNSを更新するか、WebサイトのIPを変更する7日前にネームサーバーを変更することを強くお勧めします。

最近のコンピューターとブラウザーは、DNSでTTLを順守するのにかなり信頼できますが、最良の結果を得るにはチェーン全体を理解する必要があります。


おかげで、はい、これは上記の明度の回答の下での私のコメントを反映しています。リゾルバーは、ネームサーバーを数分以内にかなり迅速に更新しました。重要なのは、最初にそれを行い、次に宛先IPアドレスを変更する前に数時間待つことでした。両方ともすぐに悪かった...非常に悪かった。
CC
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.