ex1-lab

Linux, CentOS, Mac OS X, Windows, 仮想化, Apache等のLinux中心に気になることをメモがわりに・・・

VirtualHostを設定時にIP直打ちでアクセスした場合の対処

    この記事は約2分で読むことができます。

概要

ApacheでVirtualHostを設定して、VirtualHost毎にWEBページを設定しても、サーバー自体のIPアドレスを直打ちされると意図しないVirtualHost毎にWEBページが表示されます。

これは名前ベースVirtualHostを使用した場合は、サーバにリクエストがくると以下の挙動をおこないます

  1. <NameVirtualHost> のIPアドレスをチェックします
  2. IPアドレスが一致すれば、<VirtualHost> のServerName か ServerAlias を確認します
  3. <VirtualHost>の設定があればその設定に従ってWEBページを表示します

IPアドレスを直打ちすると、 IPアドレスとマッチする<VirtualHost> の設定がない場合は、IPアドレスのリストの最初にあるバーチャルホスト が使用されますこの挙動でApacheが動いているので、サーバー自体のIPアドレスを直打ちされると意図しないVirtualHost毎にWEBページが表示される理由です

参考URL:名前ベースのバーチャルホスト(Apache HTTP サーバ バージョン 2.4)

VirtualHostでIP直打ちでアクセスした意図したページを見せる方法

この対策ですが、「 IPアドレスとマッチする<VirtualHost> の設定がない場合は、IPアドレスのリストの最初にあるバーチャルホスト が使用される」となっているので、最初にダミーページを表示するか、明示的にServerNameのIPアドレスの設定を入れれば指定しているWEBページを表示されます

ダミーページの設定を、NameVirtualHostの先頭にする場合

NameVirtualHostの後に、IP直打ちだと表示したいWEBページの設定を設定します。そうするとIP直打ちで名前解決できなかった場合は、NameVirtualHostの後のVirtualHostの設定を見るので、意図しないページを表示されないようになります

IPアドレスをVirtualHostに設定する場合

IPアドレスをVirtualHost内の「ServerName」に設定すれば、IPアドレスで名前解決されIP直打ちでもそのアドレスの設定があるので、そのページが表示されます

 - Linux , ,