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

最終更新日: 2007.12.10

<<トップページ <<新着情報 <<質問BBS <<逆引き集 <<アンケート <<リンク集 <<サイト内検索 <<ダウンロード <<管理人へメール <<CentOSで自宅サーバー構築

■概要

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

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


■ドメイン名取得

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

■Apache設定

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

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

(2)ApacheSSL設定Webサーバー間通信内容暗号化を導入している場合のみ
名前ベースバーチャルホストの場合(グローバルIPアドレス1個で複数のWebサイトを運営する場合)で、メインホストがfedorasrv.com、バーチャルホストがvirtual.comとした場合、https://fedorasrv.com/でアクセスしてもhttps://virtual.com/でアクセスしても、https://fedorasrv.com/のWebページが表示されてしまうので、 https://fedorasrv.com/でアクセスした場合はそのままで、https://virtual.com/でアクセスした場合はhttp://virtual.com/へリダイレクトするようにする。
[root@fedora ~]# vi /etc/httpd/conf.d/ssl.conf ← ApacheSSL設定ファイル編集
#   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} !fedorasrv.com$ ← メインホスト名を指定
      RewriteRule ^/(.*)?$ http://%{HTTP_HOST}/$1 [L,R]
    </IfModule>
−−追加(ここまで)−−
</VirtualHost>

■Apache再起動

[root@fedora ~]# /etc/rc.d/init.d/httpd restart ← Apache再起動
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]

■バーチャルホスト確認

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

Free Website Test tools by WebSitePulse


「Test Type」で「Website Test」を選択
「Test Target」でサーバー名(例:http://virtual.com)を指定
「Verification Cpde」に画像で表示されている数字を入力
「Perform Test」ボタンを押下

以下のような結果が表示されればOK
Website test results

URL tested: http://virtual.com
Test performed from: Seattle, WA
Test performed at: 2007-06-12 07:30:13 (GMT -07:00)
Status: OK
Response Time: 2.298 sec
DNS: 0.708 sec
Connect: 0.146 sec
First byte: 0.147 sec
Last byte: 1.296 sec
Size: 23294 bytes

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

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

DNSサーバー構築(BIND)を参考に、追加したWebサイトのドメイン名(virtual.com)のゾーン定義ファイル及び、正引きゾーンデータベースを作成、named.confへ作成したゾーン定義を取り込むinclude文を追加して、内部向けDNSサーバーへ反映する。

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



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

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