Apache設定編⑤ バーチャルホストの設定(後編) Linuxサーバ構築手順まとめ
前回に引き続き、バーチャルホストの設定をしていきましょう。
前回はポート番号によるリクエストの振り分けを行ってきましたが、今回はドメインによる切り分けを見ていきます。
ドメイン指定によるバーチャルホスト設定
では早速設定方法を確認しましょう。まずは大枠の流れを押さえましょう。
1.httpd.confの設定編集
2.DNSの設定(またはローカルPCのhostsファイルの設定)
3.Apacheの再起動
4.バーチャルホストの設定確認
次に、個別に内容を見ていきます。
1.httpd.confの設定編集
今回もひとまず2つのバーチャルホストを構築することにします。
前回のポート設定の内容が残っていたらもとに戻しておきましょう。
httpd.confを開き、以下の内容を追記しましょう。
<VirtualHost *:80> ServerAdmin webmaster@virtual1.com DocumentRoot /var/www/html/virtual1 ServerName virtual1.com ErrorLog logs/virtual1.com-error_log CustomLog logs/virtual1.com-access_log common </VirtualHost> <VirtualHost *:80> ServerAdmin webmaster@virtual2.com DocumentRoot /var/www/html/virtual2 ServerName virtual2.com ErrorLog logs/virtual2.com-error_log CustomLog logs/virtual2.com-access_log common </VirtualHost>
VirtualHostディレクティブが2つ記述されていることがわかります。
各々の「DocumentRoot」の欄を見てみましょう。
「/var/www/html/virtual1」
「/var/www/html/virtual2」
の別々のディレクトリが指定されていることがわかります。
他の項目も分かりやすく「virtual1」「virtual2」としていますが、
実際に使う際は、名前は自由に設定して構いません。
前回と異なるのはポートの指定部分です。
2つのVirtualHostディレクティブのどちらも
<VirtualHost *:80>
で80番ポートを指しています。
では、Apacheは何でリクエストを振り分けるのでしょうか。
それは、「ServerName」ディレクティブです。
ServerNamdディレクティブで指定しているのは、リクエストされた際のドメインです。
つまり、このドメインでアクセスした際に、このサーバにリクエストされるように設定すればよいということになります。これは次の「2」で説明します。
そしてもう一点、確認しておきたいのが「NameVirtualHost」ディレクティブです。
ここのコメントアウトを外しておきましょう。
NameVirtualHost *:80
これで、ドメイン名指定でのバーチャルホストが有効になります。
2.DNSの設定(またはローカルPCのhostsファイルの設定)
本来であればDNSに2つのドメイン「virtual1.com」と「virtual2.com」のIPアドレスとの対応を指定してあげる必要があるのですが、
今回は確認なのでローカルPCのhostsファイルを指定して、便宜的に確認をすることにしましょう。
Windowsの場合、以下に格納されているhostsファイルを開いてください。
「C:WindowsSystem32driversetchosts」
そして、下記の2行を追記します。
virtual1.com 【サーバのIPアドレス】
virtual2.com 【サーバのIPアドレス】
記述したら保存してあげましょう。
これで、virtual1.com、virtual2.comにブラウザからアクセスすると、
指定したサーバにリクエストされることになりました。
3.Apacheの再起動
では、毎度の通りApacheを再起動して、設定を有効にしてあげましょう。
# service httpd restart
4.バーチャルホストの設定確認
それでは設定確認をしましょう。
まず、それぞれのドキュメントルートにサンプルページを作成します。
# cd /var/www/html # mkdir virtual1 # mkdir virtual2 # vi virtual1/test.html # vi virtual2/test.html
virtual1とvirtual2ディレクトリ配下のtest.htmlには、どちらのページか分かるような内容を記述しておきましょう。
それでは、
http://virtual1.com/test.html
http://virtual2.com/test.html
にアクセスしてみましょう。
上記で作成したそれぞれのサンプルページが表示されれば確認完了です。
補足
今回はhostsファイルで設定したドメインへのアクセスを行いましたが、
この方法を使えば社内の開発サーバなどはすぐに複数構築できることがイメージできたかと思います。
インターネット上に公開するとなると、DNSの設定やドメインの取得が必要になってくるので、注意しましょう。
前回出てきたリクエストの振り分け方法の3つめの「IPアドレス」による振り分けですが、
これは一つのサーバに複数のIPアドレスを振る必要が出てきます。
IPアドレスの割り振りというのは、端末のNIC(Network Interface Card)に対して行われますので、NICを複数毎触れるPCであれば設定をすることが可能になります。
ただ、それよりは今回のドメインによるバーチャルホストの方が使用する機会は多いと思います。