VirtualHostの設定

複数のドメインを取得し、ドメインごとのWebサイトを運用します。
ここでは名前ベースのヴァーチャルホストで運用します。
なお、ここでは以下の用に設定し、必要なディレクトリ・ファイルは存在し、パーミッションも適切に設定されているものとします。

アドレス メインサイト http://www.crimson-snow.net
追加するサイト http://www.red-snow.net
ドキュメントルート メインサイト /usr/local/www/data
追加するサイト /usr/local/www/red-snow
ログファイル メインサイト /var/log/httpd-access.log
追加するサイト /var/log/httpd-access_red-snow.net.log
エラーログファイル メインサイト /var/log/httpd-error.log
追加するサイト /var/log/httpd-error_red-snow.net.log
ワームのログファイル メインサイト /var/log/httpd-worm.log
追加するサイト /var/log/httpd-worm_red-snow.net.log
「Apache」の設定

ここでは最低限の設定のみ記述していますので、必要に応じてログファイルの設定なども行えます。

FreeBSD5.3-RELEASEの場合

FreeBSD# vi /usr/local/etc/apache21/httpd.conf <= 設定ファイルの編集
#NameVirtualHost *:80
↓
NameVirtualHost *:80 <= コメント解除

メインサイトの情報を追加
<VirtualHost *:80>
    ServerName www.crimson-snow.net
</VirtualHost>
ここまで

追加するサイトの情報を追加
<VirtualHost *:80>
    ServerName www.red-snow.net
    ServerAlias red-snow.net *.red-snow.net
    DocumentRoot /usr/local/www/red-snow
    ErrorLog /var/log/httpd-error_red-snow.net.log
    CustomLog /var/log/httpd-access_red-snow.net.log combined env=!no_log
    CustomLog /var/log/httpd-worm_red-snow.net.log combined env=worm
</VirtualHost>
ここまで

FreeBSD6.0-RELEASEの場合

FreeBSD# vi /usr/local/etc/apache21/extra/httpd-vhosts.conf <= VirtualHost用設定ファイルの編集
以下の部分をすべてコメントアウト
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot /www/docs/dummy-host.example.com
    ServerName dummy-host.example.com
    ServerAlias www.dummy-host.example.com
    ErrorLog /var/log/dummy-host.example.com-error_log
    CustomLog /var/log/dummy-host.example.com-access_log common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot /www/docs/dummy-host2.example.com
    ServerName dummy-host2.example.com
    ErrorLog /var/log/dummy-host2.example.com-error_log
    CustomLog /var/log/dummy-host2.example.com-access_log common
</VirtualHost>
ここまで

以下の部分を追加
メインサイトの情報
<VirtualHost *:80>
    ServerName www.crimson-snow.net
</VirtualHost>
追加するサイトの情報
<VirtualHost *:80>
    ServerName www.red-snow.net
    ServerAlias red-snow.net *.red-snow.net
    DocumentRoot /usr/local/www/red-snow
    ErrorLog /var/log/httpd-error_red-snow.net.log
    CustomLog /var/log/httpd-access_red-snow.net.log combined env=!no_log
    CustomLog /var/log/httpd-worm_red-snow.net.log combined env=worm
</VirtualHost>
ここまで


FreeBSD# vi /usr/local/etc/apache21/httpd.conf <= 「Apache」の設定ファイルの編集
#Include etc/apache21/extra/httpd-vhosts.conf
↓
Include etc/apache21/extra/httpd-vhosts.conf <= コメント解除

「Apache」を再起動し、設定を反映させます。

FreeBSD# /usr/local/sbin/apachectl restart <= 「Apache」の起動
アクセスしてきたアドレスによって動作を変更する

リクエストされたアドレスによって以下のような動作に変更したい場合、それぞれの設定を追加します。

IPアドレスでアクセスさせない

直接IPアドレスで指定された場合、特に設定していなければ最初に記述されたVirtualHostの設定が適用されます。
そこで、IPアドレスで指定された場合にページを表示させたくない場合は以下のように設定を追加します。
なお、ここでは最低限の設定のみ記述していますので、必要に応じてログファイルの設定なども行えます。

FreeBSD# vi /usr/local/etc/apache21/httpd.conf <= 設定ファイルの編集(FreeBSD5.3-RELEASEの場合)
FreeBSD# vi /usr/local/etc/apache21/extra/httpd-vhosts.conf <= 設定ファイルの編集(FreeBSD6.0-RELEASEの場合)
最初のVirtualHostの設定として以下を追加
<VirtualHost *:80>
    ServerName any
    DocumentRoot /tmp
</VirtualHost> 

「Apache」を再起動し、設定を反映させます。

FreeBSD# /usr/local/sbin/apachectl restart <= 「Apache」の起動

ホスト名を強制的に付加する

例えばwwwをホスト名とした場合に、wwwを付加しなかったり、mail等の他のホスト名を付加してアクセスされた場合に 強制的にwwwを付加したアドレスに転送するようにします。
この場合、ホスト名を付加したものと付加していないものの二つのVirtualHostを設定し、Redirectを利用して転送します。
なお、ここでも最低限の設定のみ記述していますので、必要に応じてログファイルの設定などが行えます。

FreeBSD# vi /usr/local/etc/apache21/httpd.conf <= 設定ファイルの編集(FreeBSD5.3-RELEASEの場合)
FreeBSD# vi /usr/local/etc/apache21/extra/httpd-vhosts.conf <= 設定ファイルの編集(FreeBSD6.0-RELEASEの場合)
wwwを付加したデフォルトのメインサイトのVirtualHostの設定
<VirtualHost *:80>
    ServerName www.crimson-snow.net

</VirtualHost>
ここまで

www以外のVirtualHostの設定
<VirtualHost *:80>
    ServerName crimson-snow.net
    ServerAlias *.crimson-snow.net
    Redirect permanent / http://www.crimson-snow.net/
</VirtualHost> 
ここまで

「Apache」を再起動し、設定を反映させます。

FreeBSD# /usr/local/sbin/apachectl restart <= 「Apache」の起動
DNSサーバの設定

ローカルネットワークからもアクセスできるようにこちらを参照して、 DNSサーバの設定と正引きゾーンファイルの追加をします。

▲ページのトップへ