ローカルに設置したlvh.meなnode.jsのサイトをスマフォから見る方法
開発環境としてローカルにnode.jsのアプリケーションを置いている場合、通常であればローカルIPアドレスでアクセスすれば良いだけなんですが、hoge.lvh.me*1などの様にサブドメインを見ている場合、脱獄済みのiOS端末やrootedなAndroid端末のように、hostsをいじれる環境であれば問題はありませんが、通常ではアクセスする事ができません。
そこで、Apacheを介してIPアドレスでのアクセスをドメインへのアクセスに向けてあげる方法をまとめておきます。
[追記 at 2013/08/05]
BINDでの方法を書きました。こっちの方が妥当だと思います。
http.conf
まずはProxyモジュールを有効化します。
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so
vhost
次にProxyの設定で、アクセス先を変更します。
以下の場合、(ローカルIPである)http://192.168.0.1/へのアクセスをhttp://hoge.lvh.me:3000/に向けています。
<VirtualHost *:80> ServerName localhost ServerAlias localhost DocumentRoot "/var/www/" ProxyPass / http://hoge.lvh.me:3000/ ProxyPassReverse / http://hoge.lvh.me:3000/ </VirtualHost>
サブドメインが複数ある場合、切り替えの際に書き換えないといけないのが少々面倒ですが、これでアクセスはできるようになります。
また、DocumentRoot配下に直接置いているドキュメント類にはアクセスできないので注意が必要です。
なお、他のバーチャルホストには影響ありません。
他に良い方法があったら教えてください。