Logo address

仮想ホスト

目次

2002/12/07 改訂

説明

1つのサーバは複数の名前を持つ事ができます。
各々の名前に対して異なる IP アドレスを割り当ててもよいし、サーバと同じ IP アドレスのままでも構いません。何れにせよ DNS に登録する必要があります。

car.goodwill.com を仮想ホストの名前とします。
クライアントが

	http://car.goodwill.com
によって Pegasus にアクセスできるためには、DNS への登録の他に
	/sys/lib/httpd.rewrite
の中で仮想ホストの名前と、仮想ホストの web ルートが指定されている必要があります。このファイルの中で
	http://car	*/usr/carol/www
のように第一フィールドに("http://" に続けて)仮想ホストの名前、そして第二フィールドに "*" に続けて仮想ホストの web ルートを指定します。

仮想ホストの IP アドレスが実ホストと異なる場合には
	http://202.250.160.122	*/usr/carol/www
	http://car	*/usr/carol/www
のように、仮想ホストの IP アドレスでも web ルートを指定します。(でないと IP アドレスではアクセスできません。)

この場合、仮想ホスト car

	/usr/carol/www/doc
にホームページのデータを置きます。このディレクトリはサービス空間の中では
	/doc
として見えます。

仮想ホスト car

	/usr/carol/www/etc
passwd, allow, rewrite, namespace_80 などのファイルを持てます。
これらのファイルはサービス空間の中では
	/etc
の中に見えます。

仮想ホスト car

	/usr/carol/web/etc/namespace_80
によって(必要ならば)名前空間を編成できます。ここに現れる 80 はサービスポートの番号で、ポートごとにファイルを(必要なら)作成します。

注意

仮想ホストのユーザ

仮想ホストはユーザを持てません。(ホストの運営上から考えると、仮想ホストは特別待遇のユーザにすぎないからです。) クライアントからの次のような
	http://car.goodwill.com/~alice
仮想ホストに対する "/~" で始まるパスを含むリクエストは拒否されます。

仮想ホストと古いクライアント

仮想ホストは HTTP/1.1 の仕様と深く関わっており、古いクライアントは実ホストと同じ IP に割り振られた仮想ホストにはアクセスできません。

仮想ホストと SSL

SSL を使用したときのホストの証明は実ホストのものです。IP アドレスが実ホストと共有している仮想ホストは SSL の性格から仮想ホスト独自の証明を行うことはできません。他方 実ホストと異なる IP アドレスを使用している仮想ホストは原理的にはそのホスト独自の証明を与えることができますが、Pegasus の現在の版は実ホストのものを使用しています。(この場合、仮想ホスト独自のものを使用するのは容易なのですが、私はそのニーズを感じていません。)