■概要

現在運用中のWebサーバーで、もうひとつWebサイトを運用する。
ここでは、WebサーバーApacheのバーチャルホスト機能を使用して、以下に示す条件で2つのWebサイトを運用できるようにする。

・メインWebサイトはhttp://wakuwakustation.com/
・追加するWebサイトはhttp://virtual.com/
・メインWebサイトのドキュメントルートは/var/www/html
・追加するWebサイトのドキュメントルートは/var/www/html/virtual
・メインWebサイトへのアクセスログは/var/log/httpd/access_log、/var/log/httpd/error_logに記録する
・追加するWebサイトへのアクセスログは/var/log/httpd/virtual-access_log、/var/log/httpd/virtual-error_logに記録する


■ドメイン名取得

追加するWebサイトのドメイン名を取得する。⇒ドメイン名取得(独自ドメイン編)または、ドメイン名取得(ieServer.Net編)を参照

■Webサーバー設定

(1)バーチャルホスト設定
[root@centos ~]# mkdir /var/www/html/virtual ← バーチャルホスト用ドキュメントルートディレクトリ作成

[root@centos ~]# vi /etc/httpd/conf.d/virtualhost.conf ← バーチャルホスト設定ファイル作成
NameVirtualHost *:80
以下、メインホスト情報(wakuwakustation.com)
<VirtualHost *:80>
    ServerName wakuwakustation.com
</VirtualHost>
以下、追加ホスト情報(virtual.com)
<VirtualHost *:80>
    ServerName virtual.com
    DocumentRoot /var/www/html/virtual
    ErrorLog logs/virtual-error_log
    CustomLog logs/virtual-access_log combined env=!no_log
</VirtualHost>

(2)WebサーバーSSL設定Webサーバー間通信内容暗号化を導入している場合のみ
名前ベースバーチャルホストの場合(グローバルIPアドレス1個で複数のWebサイトを運営する場合)、メインホストがhttps://wakuwakustation.com/、バーチャルホストがhttps://virtual.com/とした場合、https://wakuwakustation.com/でアクセスしてもhttps://virtual.com/でアクセスしても、https://wakuwakustation.com/のWebページが表示されてしまうので、 https://wakuwakustation.com/でアクセスした場合はそのままで、https://virtual.com/でアクセスした場合はhttp://virtual.com/へリダイレクトするようにする。
[root@centos ~]# vi /etc/httpd/conf.d/ssl.conf ← WebサーバーSSL設定ファイル編集
#   Per-Server Logging:
#   The home of a custom SSL log file. Use this when you want a
#   compact non-error SSL logfile on a virtual host basis.
CustomLog logs/ssl_request_log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

--追加(ここから)--
    <IfModule mod_rewrite.c>
      RewriteEngine On
      RewriteLog "logs/rewrite_log"
      RewriteLogLevel 0
      RewriteCond %{HTTP_HOST} !wakuwakustation.com$ ← メインホスト名を指定
      RewriteRule ^/(.*)?$ http://%{HTTP_HOST}/$1 [L,R]
    </IfModule>
--追加(ここまで)--
</VirtualHost>

■Webサーバー再起動

[root@centos ~]# /etc/rc.d/init.d/httpd restart ← Webサーバー再起移動
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]

■バーチャルホスト確認

外部からバーチャルホストにアクセスできるか確認する。

[root@centos ~]# echo test >> /var/www/html/virtual/index.html ← テストページ作成

以下の「Hostname」欄にホスト名(例:virtual.com)を入力してGoボタンを押下する
WebSitePulse.com - free webmaster tools
Hostname:

以下のような結果が表示されればOK。
WebSite Test results

URL tested: virtual.com
Status: Server responded normally to all tests
Server Status: HTTP/1.1 200 OK
Server type: Apache
Last modified: Tue, 22 Nov 2005 04:30:27 GMT
Size: 5 bytes (0.00 Kb)
Response time: 0.5804 seconds

[root@centos ~]# rm -f /var/www/html/virtual/index.html ← テストページ削除

■内部向けDNSサーバーへドメイン名反映

内部向けDNSサーバー構築(BIND)を参考に、追加したWebサイトのドメイン名(virtual.com)の正引きゾーンデータベースを作成、named.confへ作成した正引きゾーンデータベース情報を追加して、内部向けDNSサーバーへ反映する。

これで、内部からも、追加したWebサイトへドメイン名(virtual.com)でアクセスできるようになる。