バーチャルホスト設定(Apache)

最終更新日: 2009.12.29

<<トップページ <<新着情報 <<質問掲示板 <<アンケート <<リンク集 <<サイト内検索 <<管理人へメール <<Fedoraで自宅サーバー構築

■概要

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

・メインWebサイトはhttp://centossrv.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/httpd.conf ← Apache設定ファイル編集
NameVirtualHost *:80 ← コメント解除(バーチャルホスト有効化)

[root@centos ~]# vi /etc/httpd/conf.d/virtualhost-centossrv.com.conf ← メインホスト用バーチャルホスト設定ファイル作成
<VirtualHost *:80>
    ServerName centossrv.com
</VirtualHost>

[root@centos ~]# vi /etc/httpd/conf.d/virtualhost-virtual.com.conf ← 追加ホスト用バーチャルホスト設定ファイル作成
<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://centossrv.com/、バーチャルホストがhttps://virtual.com/とした場合、https://centossrv.com/でアクセスしてもhttps://virtual.com/でアクセスしても、https://centossrv.com/のWebページが表示されてしまうので、 https://centossrv.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} !centossrv.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)でアクセスできるようになる。



▲このページのトップへ戻る

LPIロゴ Copyright© 2005-2010 fallenangels, All rights reserved.
ご自由にリンクしてください(連絡は不要です)
本ページへのご意見・ご要望、誤字・脱字・リンク切れ等のご連絡はこちらからお願いします