先日、このブログは「さくらインターネット」から「エックスサーバー」へと移転しました。
サーバーの移転ですから、もちろん運営の場所が変わります。ただ、ドメインは変わらずそのままですので、最終的にはネームサーバーの設定を変更させて新しいサーバーへアクセスできるようにしなくてはいけません。
それまでの間、移転先のサーバーでサイトを構築して動作テストをしたいわけですが、移転先もドメインが同じですので、この状態では移転先のサーバーでテストができません。(今、稼働中のサイトに繋がってしまうため。)
そういったときは、移転先のサーバーが対応してくれているのならば「動作確認URL」を使う、またはパソコン内にある「hosts」ファイルを書き換えて強制的にアクセスを移転先サーバーへと向かわせる方法があります。
今回は、私が今利用している「エックスサーバー」を例にとって、この2つの方法について書いてみたいと思います。
そもそも何故Webページが見られるのか
操作に移る前に、まずWebページが見られる仕組みを簡単に書いてみます。
皆さんはこのブログのページを「Webブラウザ(ウェブブラウザ)」を使って閲覧している状態かと思います。ブラウザの上部にはこのページの「URL(Uniform Resource Locator)」が表示されていますね。
このURLを指定すればブラウザはコンテンツを表示してくれます。一見これだけで直接Webサーバーに向かってアクセスをしてくれているように感じますが、実はURLやドメイン名(ホスト名)のみの情報ではコンテンツを保存しているサーバーへ繋ぐことはできません。ネットワークの場所を指定する「IPアドレス」の情報が入っていないからです。
コンピューターがネットワーク内でデータをやりとりするためにはIPアドレスが欠かせません。ただ、人間から見ると単調なIPアドレスを覚えるのは難しく、またブランド化もできないため、ドメインやURLというもっと覚えやすい表記を考えたのです。
DNSサーバーに問い合わせてIPアドレスを教えてもらう
このため、実際にWebページを表示させるためには、どこかに「アクセスしたいホスト名を使っているサーバーのIPアドレス」を調べてもらわなくてはいけません。「ホスト名とIPアドレスを関連付けさせている場所」へ問い合わせる必要があるのです。
この関連付けを行なっているサーバーを「DNS【Domain Name System】」といいます。
※ドメイン名はホストが所属するところの名前。この記事ではドメイン名と大体同じと考えて結構です。(技術的にはちょっと違います。)
例として、「example.com」というサイトにアクセスしたいとします。
最初に「example.com」に関連付けされているIPアドレスを「DNS」にアクセスして問い合わせます。すると、DNSは返事として「example.com にアクセスするためのIPアドレスは xxx.xxx.xxx.xxx です。」と返してくれます。
返事を受け取ったら「xxx.xxx.xxx.xxx」を保持するWebサーバーに向けてアクセスしてデータを取得すればWebブラウザにコンテンツが表示されます。
この一連の作業を「名前解決【name resolution】」と言います。
上記の図はかなり簡略化していますが、この仕組みをよく覚えておいてください。ドメイン名という名前からIPアドレスへ変換することでサーバーへのアクセスを可能にする、インターネット上の重要なシステムです。
もう少し詳しい話は下記の記事にて。
DNSに登録があるサーバーに向かってアクセスされる
今回、当ブログが行なったようなサーバーの移転の場合、移転先も同じドメイン名を設定させる必要があるのですが、上記の通りDNSの設定が変更されないと移転先のサーバーに繋げることができません。
なので、移転する際にはドメインを取得した企業(レジストラ)にアクセスして「ネームサーバー」を変更する作業が必要になります。これを変更すると全世界のDNSサーバーの設定が徐々に書き換わって移転先のサーバーに繋がるようになります。
ネームサーバーの設定 | レンタルサーバー【エックスサーバー】
https://www.xserver.ne.jp/manual/man_domain_namesever_setting.php
ネームサーバー変更前に移転先のサーバーでテストしたい!
しかし、本格的にドメインの設定を変更する前に、移転先のサーバーでWebサイトの動作テストや構築などを行いたいですよね。移転先でWebサイトが完成された状態でネームサーバーを変更すれば、閲覧者から見てもWebサイトにアクセスできない時期がなく不便を感じさせません。
ですが、移転先は同じドメイン名、アクセスしようとしても移転前のサイトに繋がってしまう。これでは事前にテストができない・・・
ということで、前置きが長くなりましたが、これを解決しようという話が今回の記事の内容です。
動作確認URLを使う方法
エックスサーバーでは、この問題を解決するために2つの方法を提示してくれています。
動作確認について | レンタルサーバー【エックスサーバー】
https://www.xserver.ne.jp/manual/man_domain_checkproxy.php
最初に提示してくれている「動作確認URL」を使ってみます。
この方法の注意点として、移転先でもWordPressのようなCMSを利用したい場合、CMS内で設定されているURLと動作確認用のURLが異なるために、プログラムが正常に動作しない場合があります。これを避けたい場合は、後述する「hostsファイルの変更」を試してください。
同じページの「動作確認URL設定の一覧」を選択し、「動作確認アドレス」が設定されていることを確認します。ここに表示されているアドレスが動作確認のための専用のアドレスです。設定が反映されるまで一時間ほどかかるようですので、しばらく待ってからのこのアドレスにアクセスしてみます。
無事、移転先のサーバーにアクセスできれば成功です。
hostsファイルを変更する方法
「動作確認URL」のメリットは、サーバーパネル上ですべて設定ができることと、動作確認URLを知っていればどのPCでもこのアドレスでアクセスができる点です。
しかし、エックスサーバーのヘルプページにもあった通り、WordPressなどのCMSを利用している場合、CMS内で設定されているURLと動作確認URLとが異なることで、プログラムが正常に動作しない場合がでてきます。
この場合は、WindowsやMac内に存在している「hosts」という名前のファイルを編集することで問題を回避します。
hostsはDNSサーバーよりも前に参照される
「hosts(ホスツ)」というファイルは、DNSサーバーに問い合わせするより前に参照される、IPアドレスとそれに対応したホスト名(ドメイン名)の一覧を記したテキストファイルです。
名前解決においてDNSサーバーへの問い合わせより前に確認されるため、インターネット上にあるDNSサーバーよりこちらの設定が優先されるようになります。この「hosts」ファイルの中身を書き換えることで、強制的に移転先のサーバーへアクセスするようにします。
この方法の注意点は、変更したhostsファイルが保存されているPCからでないとアクセスできないことです。複数のPCで移転先のサーバーへアクセスしたい場合は、すべてのPCにあるhostsファイルを変更する必要があります。
保存が完了したら、そのPCで通常通りアクセスしてみてください。hostsファイルの設定が優先されて、移転先のサーバーへアクセスできたら成功です。
この方法の利点は、Webサイトのドメイン名を一切変更せずにアクセスできる点で、移転先のサーバーにあるプログラムも同じドメイン名で動作テストが可能になります。URL関連の不具合も少なくなると思います。また、ネームサーバーを変更した後でもURLの設定を再度変更する必要がなく、よりスムーズに移行が進みます。
この方法は、hostsファイルで設定したPCでしかアクセスできませんのでご注意ください。また、ネームサーバー変更前の「一時的な」動作確認方法ですので、用が済んだら設定は元に戻しましょう。(追記した記述を削除すれば元に戻ります。)
まとめ
以上、エックスサーバーを例に「動作確認URL」「hostsファイルの編集」の2つの方法を紹介いたしました。といってもエックスサーバーのヘルプページに書いてある通りではあるのですが、意味も分からず操作するのも怖いだろうと思ったので、原理についても簡単に書いてみました。
私の場合は、編集作業をするPCが一台のみなので「hostsファイルの編集」で対応していました。移転先のサーバーでWebサイトを完成させた上で、さくらインターネットで取得したドメインのネームサーバーを変更させることで移転させました。
hostsファイルの変更であれば、エックスサーバー以外のサーバーでも応用できます。また、ローカル内のテスト環境に向けて設定することも可能ですので、より柔軟な運用ができます。(192.168.0.2 test.example.jp のように書けばローカル内でもホスト名によるアクセスが可能です。)
長くなりましたが、この記事も何かのお役に立てましたら幸いです。
コメント
コメント欄を開く