【Mac】ローカルのhostsを切ってサーバーIPへアクセスしよう!

今回はこのような質問をいただきました。

別の方がインフラを構築し、そのサーバにPHPで作成したアプリケーションを配置するといった作業をする必要がありました。
アプリケーションの動作確認の方法がわからなかったので確認したところ、「サーバーIPでローカルのhostsを切ってアクセスをお願いいたします」と言われました。
サーバーIPでローカルのhostsを切ってアクセスするってどういうこと?
「hostsファイルで対象のIPとドメインを設定してアクセスするようにしてください」ということですね。
hostsの存在を知らないとわからないですよね。
そこで今回はこちらの質問について解説していきます!
hostsファイルって何?
hostsファイルは/private/etc/hostsに配置されています。
IPとドメインを紐付けることができ、こちらの設定はDNSより優先されます。
例えばローカルホストは 127.0.0.1, localhost どちらにアクセスしても同じですよね。
これはhostsファイルでそのように設定されているからです。
実際にこのような記述があると思います。
127.0.0.1 localhost
こちらを利用することで指定したドメイン名でサーバーIPへアクセスできるようになります。
実際に設定してみよう!
やることは非常に簡単で1行追記するだけです。
まずはhostsファイルを開きます。
$ sudo vi /private/etc/hosts
その後、localhostの設定を真似て追記します。
IPアドレス + スペース + ドメイン のように設定します。
XX.XXX.XXX.XX test.xxxx.jp
このように設定した場合はtest.xxxx.jpにアクセスするとXX.XXX.XXX.XXの内容が表示されます。
なぜhostsを使うの?
なぜ、hostsに設定する必要があったのか考えたところ、Apacheの設定が関係していそうです。
こちらのサーバーでテスト環境、本番環境をすべて扱っているので、おそらくアクセスするアプリケーションをドメインによって振り分ける設定がされています。
そのため、ドメインでアクセスしないと接続ができない状態となっていました。
そこでhostsを使ってドメインでアクセスする必要がありました。
あとがき
あまりこのような場面はないと思いますが、リニューアルだったり、リプレースだったりを行う際には必要になるかもしれません。
hostsでの設定はDNSより優先されるので、使い方によっては非常に便利です。
使う機会は少ないですが、DNS関連の作業をする際には使いこなしたいですね!