名前ベースのVirtualHost設定の確認方法

httpdに名前ベースのVirtualHostを記述した際に、その動作を確認する方法がわからず困りまいた。単純にオープンなDNSサービスに該当するドメインを登録してしまえば良いのですが、開発段階でまだドメインを登録していない場合に確認しなければならず、その方法を探していました。

事の発端は、EC2でWebサービスを公開する際に、CNAMEの登録が済んでいない状態で検証作業をどのようにおこなうか?という問題が発生したことでした。正式リリースの際はドメインを取得してサービスをリリースしますが、開発段階であったためまだ取得ができていませんでした。

結論

ローカルの環境(Mac)を使用して確認する方法をとりました。名前解決をhostsでおこない、リクエストはリバースプロキシーを使用して該当のサーバに飛ばします。

手順

  • 動作確認をおこなう環境のhttpd.confにVirtualHostを記述する。
  • 動作確認をおこなう環境のhttpdを起動する。
  • Macのhostsに該当する名前を"127.0.0.1"で名前解決するようにする。
  • Machttpdhttpd.confにリバースプロキシ設定を追加する。
  • Machttpdを起動する。
  • ブラウザで該当する名前でアクセスする。

VirtualHostの記述

"名前ベースのバーチャルホスト - Apache HTTP サーバ"や"core - Apache HTTP サーバ"を参考にして記述します。
httpd.confの変更が終わった際は、"apachectl -S"で文法ミスがないかチェックします。

hostsへの記述

sudo vim /etc/hosts
>> 127.0.0.1 <テストしたいドメイン>

リバースプロキシの設定

"mod_proxy - Apache HTTP サーバ バージョン 2.2"を参考にして記述します。
Macにmod_proxyモジュールはデフォルトで入っており、LoadModuleもされていたと思います。もしもコメントアウトされている場合はコメントアウトをやめます。

sudo vim /etc/apache2/httpd.conf
>> ProxyRequests Off
>> ProxyPass / <実稼働させるURL>
>> ProxyPassReverse / <実稼働させるURL>

Machttpdの起動

システム環境設定の共有より、Web共有を有効にします。


一応こんな方法で自分は確認をおこないました。
他にもっと簡単な方法はあるのかもしれませんが。。。