[ Top |Wiki |掲示版 ] powered by


L-penguin

VirtualHostの設定

VirtualHostとは

apacheでは、「VirtualHost」を設定することで、アドレスによって設定を分けることができます。たとえば

というように、アクセスに使われたサーバ名によって表示する内容(をはじめとする設定全般)を使い分けることができます。

こうすると、あたかも別々のサーバで動いているかのように見せることができます。

設定

次の設定を、httpd.confに書き加えます。

WebサーバのIPが192.168.1.1であるとします。

# VirtualHostを使うよーという指示
NameVirtualHost 192.168.1.1

さらに、各VirtualHostごとの設定を書きます。

# 例えばhoge.comの設定
<VirtualHost 192.168.1.1>
  ServerAdmin hogeadmin@hoge.com
  DocumentRoot /home/hoge/public_html
  ServerName hoge.com
  ErrorLog logs/hoge.com-error_log
  CustomLog logs/hoge.com-access_log common
</VirtualHost>

文法チェック

$ apachectl configtest
Syntax OK

VirtualHost設定のチェック

実際にどのようなVirtualHostが設定されたかは、次のように確認できます。

$ httpd -S
VirtualHost configuration:
192.168.1.1:80        is a NameVirtualHost
                      default server hoge.com (/usr/local/etc/apache/httpd.conf:1085)
                      port 80 namevhost hoge.com (/usr/local/etc/apache/httpd.conf:1085)
                      port 80 namevhost fuga.org (/usr/local/etc/apache/httpd.conf:1093)
                      port 80 namevhost guho.jp (/usr/local/etc/apache/httpd.conf:1106)

なお、このように設定されているとき、

した場合、最初のVirtualHostが使われます。つまり、この場合はhttp://hoge.com/にアクセスしたのと同じことになります。

なので、VirtualHostを使わずに運用していたWebサーバにVirtualHostを設定する場合、従来の設定を「1番目のVirtualHost」として改めて書いておく必要があります(そうしないと、従来通りのアドレスにアクセスしてもVirtualHostの方が優先されてしまいます)。


Since 2002, L-penguin.