このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

Apacheでのバーチャルホストの設定

発言者:重松修
( Date Sunday, August 27, 2000 12:56:42 )


いつもお世話になります。

MkLinux で Apache を、MacOS で QuickDNS を動かしています。

そして、MkLinux の方のマシンには、一つの IP アドレスを割り当てて
おり、そこに複数の名前を割り当てています。

A  io.ravi.ne.jp
CNAME www.ravi.ne.jp

A www.taifugoro.com

このとき、

<VirtualHost www.taifugoro.com>
ServerAdmin foo@ravi.ne.jp
DocumentRoot /home/httpd/html/taifu/
ServerName www.taifugoro.com
ErrorLog logs/taifu_error_log
TransferLog logs/taifu_access_log
</VirtualHost>

を追加すると、www.ravi.ne.jp でアクセスしても、
/home/httpd/html/taifu/
以下が表示されます。

何か他に設定すべきことがありますでしょうか。

稲垣 さんからのコメント
( Monday, August 28, 2000 00:37:31 )

 Name-baseという事ですよね。

 ええと、まず該当のIPアドレスが、Nameベースのバーチャルホストだと宣言
する必要があります。

 その後に、VirtualHostのディレクティブを書く必要があります。
また、その際に引き数?は以下のようにする必要があるはずです。

<VirtualHost xxx.xxx.xxx.xxx>

 あと、本来のサイトもバーチャルホストとして登録する必要があったかも。

 取りあえず、日本語での説明もありますので、そちらを読みながら試してみ
て下さい。



→  Apache Name-based Virtual Host Support

重松修 さんからのコメント
( Tuesday, August 29, 2000 01:04:29 )

稲垣さん、どうもありがとうございます。

早速試したところ、本来のサイトも登録しないと、一番最初に
登録があるものが表示されてしまいました。

よくわからないのですが、とりあえず動いています。

Apache の説明書の URL ありがとうござました。

読んでみたのですが、Virtual Host の動作原理がよくわかってない
ためか、古いブラウザでうまくいかないという問題点の提起の
意味が理解できませんでした。

私のIE5 ではうまくいきました。

稲垣 さんからのコメント
( Tuesday, August 29, 2000 11:13:31 )

>読んでみたのですが、Virtual Host の動作原理がよくわかってない
>ためか、古いブラウザでうまくいかないという問題点の提起の
>意味が理解できませんでした。

 このサイトのどこかに情報があったはずですが・・・。

 ざっくり書くと、HTTP 1.1?からアクセスする際に、クライアント側で認識し
ているホスト名(URL?)を送るのでそのデータを元にサーバ側が、適切なデー
タを返すことで実現しているはずです。

 www.a.comとwww.b.comとのサーバあったら、同じIPへの接続でも、クライア
ント側が「www.a.com」へアクセスしたいという情報を付けてアクセスします。

 で、クライアント側からのサーバ情報が古いバージョンだと送られないので
デフォルトのサーバしか答えられないという話のはず・・。


田中求之 さんからのコメント
( Tuesday, August 29, 2000 17:32:35 )

補足というか、蛇足ですが…

ようするに、ブラウザのリクエストのホストヘッダを見て、サーバが
送りだすサイト(ルート)を切り替えるようにしているわけです。

最近のブラウザであれば、リクエストの中に Host ヘッダが必ず含まれ
ますので問題ないのですが、古い(というか、かなり古い)ブラウザでは
Host ヘッダを含めないものがありましたので、このようなブラウザでは
適切なホストへのアクセスができないことがあります。