これまでの説明ではDocumentRootやディレクトリへの権限設定など、
しかしながら実際は1台のサーバ、
VirtualHostとは?
VirtualHostとは、
たとえば、
このようなとき、
VirtualHostの種類
VirtualHostには大きく分けて3つの種類があります。
NameVirtual、
NameVirtual
名前ベースでアクセスを振り分ける
- 想定されうる用途
- SSLを使わない小規模なサービス
(格安のレンタルサーバなど)。 - メリット
- IPアドレスの取得が不要
- デメリット
- 運用が煩雑になる可能性がある
- HTTPSでサービスを複数行うことができない
IP Virtual
IPアドレスでアクセスを振り分ける。
- 想定されうる用途
- SSLを使用する大規模サイト
(企業で使用する多くの場合) - メリット
- Portを変更することがなく、
HTTPSでサービスを複数運用することができる - デメリット
- IPアドレスを取得する必要がある
Port Virtual
Port番号でアクセスを振り分ける
- 想定されうる用途
- NAT後の内部ネットワークでの利用
- メリット
- IPアドレスの取得が不要
- デメリット
- WellKnownPort以外を使用するとき、
ユーザ側で明示的にPortを指定する必要がある
それぞれメリット・
hostsを書き換えて準備をする
それではApacheの設定に入る前に、
アクセスをする側のPCのhostsというファイルを修正することで、
・Windows
\WINDOWS\system32 drivers\etc\hosts
・Linux.MacOS
/etc/hosts
それでは上記のファイルに下記の1行を追加しましょう。IPアドレスは、
192.168.0.2 www.example.com ## IPアドレスはapacheがインストールされているサーバのIPアドレスを記述
なお、
NameVirtualを設定する
それではここからは実際に設定をしていきましょう。まずはNameVirtualからです。
Sampleで用意してあるhttpd.
NameVirtualHost *:80 # NameVirtualを使うという宣言
<VirtualHost *:80> # VirtualHostの開始
DocumentRoot /usr/local/apache2/vhosts/www.example.com/htdocs # このVirtualHostでうけた場合のDocumentRoot
ServerName www.example.com # サービスを行うドメイン
ErrorLog /usr/local/apache2/vhosts/www.example.com/logs/error_log # エラーログ
CustomLog /usr/local/apache2/vhosts/www.example.com/logs/access_log common # アクセスログ
</VirtualHost> # VirtualHostの終了
DocumentRootやLog用のディレクトリが作成されていないとapacheは起動しません。作成してからApacheを再起動しましょう。
$ sudo mkdir -p /usr/local/apache2/vhosts/www.example.com/htdocs
$ sudo mkdir -p /usr/local/apache2/vhosts/www.example.com/logs
$ echo "www.example.com" | sudo tee /usr/local/apache2/vhosts/www.example.com/htdocs/index.html
$ sudo /usr/local/apache2/bin/apachectl restart
ブラウザからアクセスしてみてください。www.
[TIPS]HTTPのヘッダを見てみよう
アクセスできたのは理解できても、

HTTPヘッダを見ることができます。この場合では、
より効率の良いサーバ構成へ
さて、
しかしながら、
次回以降で、