apache名前ベースのバーチャルホスト設定方法

  • 投稿日:
  • by ライブラリ編集局

この記事では、名前ベースのバーチャルホスト設定方法について解説します。 OSはCentOS6.3です。

メインのホスト名をmain.com

追加するホスト名をsub.comとします。

まずhttpd.confを編集し、バーチャルホストを利用可能にします。

# vi /etc/httpd/conf/httpd.conf

#
# Use name-based virtual hosting.
#
#NameVirtualHost *:80
↓
NameVirtualHost *:80(コメントアウト)

これでバーチャルホストを使うことができるようになりました。

次にそれぞれのホスト毎の設定を行います。

apacheではconf.dディレクトリにconfファイルを作成することによってそのファイルの設定がhttpd.confの設定に上書きされます。

今回はconf.dディレクトリにメインホスト用のconfファイルと追加ホスト用のconfファイルを作成します。

まずメインホスト用のconfファイル、main.confを作成します。 こちらはドキュメントルート等はhttpd.confのものを使用するので、ホスト名のみ記述します。

# vi /etc/httpd/conf.d/main.conf

<VirtualHost *:80>
    ServerName main.com
</VirtualHost>

次に、追加ホスト用confファイル、sub.confを作成します。

こちらのドキュメントルートディレクトリはメインホスト用のものとは別にするので、その旨を記述します。 また、ログも別の場所に保存する為に、その設定も行います。

# vi /etc/httpd/conf.d/sub.conf

<VirtualHost *:80>
    ServerName sub.com
    DocumentRoot /var/www/html/sub
    ErrorLog logs/suberror_log
    CustomLog logs/subaccess_log commmon
</VirtualHost>

この場合ではドキュメントルートを/var/www/html/subに設定しているので、sub.comに表示させたいページは/var/www/html/subに配置します。

今回はそれぞれのホストにアクセス出来ているか確かめる為にメインホストのドキュメントルートである/var/www/html/と追加ホストのドキュメントルートである/var/www/html/sub/には別のindex.htmlを置いてみましょう。

配置し終えたらページを表示してみましょう。 http://main.com/とhttp://sub.com/の両方で配置したindex.htmlの内容が表示されたら成功です。

注意:内部ネットワークからのアクセスの場合はそれぞれのホストでDNSの設定を行うか、hostsファイルを編集しないとアクセスできませんので注意してください。