バーチャルホストの設定


ここでは、Apacheによるバーチャルホストの設定方法について説明します。
そもそも、バーチャルホストって何でしょうか?
例えば,通常インターネットを使用する場合にはhttp://www.hogegoge.jp/と入力しますが、
「www.hogehoge.jp」と「hoge.hogehoge.jp」のように複数のサイトを構築できればwebサイトの運用も楽できますね。
これを実現させるためにはバーチャルホスト環境を構築すれば良いわけです。
バーチャルホスト環境を構築するには「IPベース」と「NAMEベース」で構築する方法があります。
では、例によって簡単に確実に構築手順を説明します。

最新更新日:2010年11月16日


◆、バーチャルホストの設定は以下の順序でおこないます。

  1. BINDの再設定

  2. Apacheの再設定



◆BINDの再設定 ここでは既にBINDは設定されているという条件です。

IPベースの場合
ホストごとにIPアドレスを付与してBINDのゾーンファイルに以下のように追加します。
# vi /var/named/hero-island.zone    ←hero-island.zoneはnamed.zoneファイルです。

www    IN      A       172.16.1.11
hoge   IN      A       172.16.1.12

:wqで保存して終了します。

# /etc/rc.d/rc.bind restart      ← BINDを再起動します。
                                    Slackware以外の方は# /etc/rc.d/init.d/named restartかな? 

NAMEベースの場合
IPベースの場合は、Aレコードで各ホストとIPアドレスの対応をDNSに登録しました。
しかし、NAMEベースの場合はIPアドレスが1つしか使用できません。だからAレコードで複数登録することはしません。
そこでNAMEベースでは、1ホスト分のAレコードで登録して、複数のホストをCNAMEレコードで別名定義をします。
例えば、「www」と「hoge」という2つのホストを172.16.1.12という1つのIPアドレスで運用するなら
# vi /var/named/hero-island.zone    ←hero-island.zoneはnamed.zoneファイルです。

www                             IN     CNAME   you.ドメイン名.
hoge                            IN     CNAME   you.ドメイン名.

:wqで保存して終了します。

# /etc/rc.d/rc.bind restart      ← BINDを再起動します。

トップへ戻る

◆Apacheの再設定Apacheも既にインストールされて既に運用されている状態です。
# cd /var/lib/apache/conf                  ← httpd.confがあるディレクトリにcdします。

/var/lib/apache/conf # vi httpd.conf           ← httpd.confを修正しましょう。

# Virtual hosts
Include conf/extra/httpd-vhosts.conf                     ← 398行目付近#を外します。

:wqでhttpd.confを保存終了します。

バーチャルホストを立ち上げる場合は、/var/lib/apache/conf/extra/httpd-vhosts.confを以下のように修正します。
IPベースの場合
 
# Use name-based virtual hosting.
#
#NameVirtualHost *:80
NameVirtualHost xxx.xxx.xxx.xxx:80 ← #を外してxxx.xxx.xxx.xxxはIPアドレス
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
<VirtualHost 172.16.1.11:80> 
ServerName www.hogehoge.jp
DocumentRoot /var/lib/apache/htdocs← ドキュメントの位置を指定します
 ServerAdmin admin@hoge.com← 管理者のメールアドレス
ErrorLog /var/log/apache/error_log← apacheのエラーログ
TransferLog /var/log/apache/access_log← apacheのアクセスログ
</VirtualHost>

<VirtualHost 172.16.1.12:80>
ServerName hoge.hoge.hoge.jp
DocumentRoot /opt/www/htdocs← ドキュメントの位置を指定します
ServerAdmin admin1@hoge.com← 管理者のメールアドレス
ErrorLog /var/log/apache1/error_log← apacheのエラーログ
TransferLog /var/log/apache1/access_log← apacheのアクセスログ
</VirtualHost>

NAMEベースの場合
 
# Use name-based virtual hosting.
#

NameVirtualHost *:80
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
<VirtualHost *:80> 
ServerName www.hogehoge.jp
DocumentRoot /var/lib/apache/htdocs← ドキュメントの位置を指定します
ServerAdmin admin@hoge.com← 管理者のメールアドレス
ErrorLog /var/log/apache/error_log← apacheのエラーログ
TransferLog /var/log/apache/access_log← apacheのアクセスログ
</VirtualHost>
#
<VirtualHost *:80> 
ServerName hoge.hoge.hoge.jp
DocumentRoot /opt/www/htdocs← ドキュメントの位置を指定します
ServerAdmin admin1@hoge.com← 管理者のメールアドレス
ErrorLog /var/log/apache1/error_log← apacheのエラーログ
TransferLog /var/log/apache1/access_log← apacheのアクセスログ
</VirtualHost>


#/var/lib/apache/bin/apachectl -t  ←httpd.confで記述に間違いがないか確認をします。
#Syntax OK  ←このように表示されれば問題ない。


前ページへ戻る










ご質問・お問い合わせ - 免責事項
Copyright (C) 1998 hero-island. All Rights Reserved.