ウェブサイトのサーバー移転時に便利なテクニックのひとつが、hostsファイルの設定。
毎回、必要になる度に「えーと、どこにあったっけ?」とググっているので、いい加減に備忘録としてまとめつつ、初心者向けにhostsを利用するメリットを紹介します。
hostsファイルの場所
Windowsの場合
C:\Windows\System32\drivers\etc\
MacOSの場合
/private/etc/
最初にhostsファイルを複製して必ずバックアップを取ります。
次に管理者権限でテキストエディタ(例えばWindowsならメモ帳など)からhostsファイルを開いて編集します。保存時に拡張子は付けません。hosts.txtとかにならないように注意。
記述例
#新サーバーのIPアドレス ドメイン名
xxx.xxx.xxx.xxx example.com
xxx.xxx.xxx.xxx subdomain.example.com
IPアドレスとドメイン名の間は必ず「半角スペース」で開ける
こんな時に便利
ウェブサイトのドメインはそのままで、サーバーは移転する。
そんなケースの動作確認に最適です。
- ウェブサイトのリニューアルにあわせて移転
- サーバーのスペックアップのために移転
- 管理業者・体制の変更の都合で移転…etc
静的HTMLサイトであれば、リンクを相対パスにしておけば、あまりドメインを意識せずに済むこともあります。
しかしWordPressなどCMSを使ったサイトではドメインとURL構造が密接に関係しており、どうしてもドメイン設定が各所に絡んできます。
新サーバーに仮ドメインを当てて動作検証し、本番公開時にデータベースを一括置換→DNSを切り替える……という方法もありますが、hostsファイルを使えば、ローカル環境だけウェブサイトの表示を新サーバーに向けることができ、手間が減ってとても便利です。
hostsを使うメリット
- 同じドメイン名のまま、新サーバー環境をテストできる
- 他の端末や一般ユーザーは旧サーバーを見ているので影響なし
- DNSの切り替え前に、本番とほぼ(※)同等の環境で動作確認が可能
hostsの便利な点は、自分のローカルにしか影響しないところ。
hostsの設定をしていない他の端末からは、引き続き旧サーバー、つまり現行のウェブサイトが表示されます。つまり一般ユーザーには何の影響もないまま、開発者は本番ドメインのまま安全にテストできるのが最大のメリットです。本番切り替え時の作業は「DNSの設定変更」だけで済むようになります。
仮ドメインを当てて、最終的にデータベース内のURLを置換…といった手間も不要。最初から「ほぼ(※)本番環境と同じ状態」を再現できて、切り替え作業時のリスクも低減できます。
注意点:本番環境の完全な再現とは限らない
ただし、hostsによる動作確認は非常に便利ですが、完全に本番環境を再現出来ているかというと、それはサーバーの構成次第なので注意。
hostsの検証時はローカルPCから直接新サーバーにリクエストを送っているので、本番サーバーが実はプロキシを利用していたりすると、テスト中は問題が見えてこなかったりする。
そのまま気が付かずに切り替えたら、IP制御にX-Forwarded-Forの設定が必要だった……とか色々失敗も経験してます。
hostsによる動作確認は非常に便利ですが、安心しきらず、本番切り替え後も確認はしっかりと。。(自戒を込めて)