投稿日:2003年12月09日 作成鷹の巣

No.13801 apache 2.0でのバーチャルホストマッチングについて



apache 2.0でのバーチャルホストマッチングについて

No.13801 投稿時間:2003年12月09日(Tue) 18:34 投稿者名:ranndo URL:

apache2.0にてグローバルIP1つとサーバ1台で複数のwebサイトを構築
しようとしているのですが、バーチャルホストの設定がうまく行きません。

URL名がたとえば www.aaa1.jp www.aaa2.jp www.aaa3.jpであったとき、
aaa1がマッチしてしまい、それぞれ正しくアクセスしてくれません。
マッチングの仕様かもしれませんが、なんとかうまい解決策はありませんでしょうか?

何卒、お知恵を拝借願えますでしょうか。


どんな設定をしましたか

No.13806 投稿時間:2003年12月09日(Tue) 22:11 投稿者名:OAK URL:

どんな設定をしましたか?


httpd.confに下記のような設定を行いました。

No.13811 投稿時間:2003年12月10日(Wed) 04:37 投稿者名:ranndo URL:

> どんな設定をしましたか?
レスありがとうございます。
httpd.confに下記のような設定を行いました。よろしくお願いします。

<VirtualHost *>
DocumentRoot "C:/Program Files/Apache Group/Apache2/htdocs/aaa1/"
ServerName www.aaa1.jp
</VirtualHost>

<VirtualHost *>
DocumentRoot "C:/Program Files/Apache Group/Apache2/htdocs/aaa2/"
ServerName www.aaa2.jp
</VirtualHost>

<VirtualHost *>
DocumentRoot "C:/Program Files/Apache Group/Apache2/htdocs/aaa3/"
ServerName www.aaa3.jp
</VirtualHost>


ネームベースになってない。

No.13812 投稿時間:2003年12月10日(Wed) 05:07 投稿者名:APACHE URL:http://kemuri-net.dip.jp/~server/

ネームベースになってない物と思われ。
サーバーに割りあられているIPアドレスが「192.168.1.11」と仮定

NameVirtualHost 192.168.1.11
<VirtualHost 192.168.1.11>
DocumentRoot "C:/Program Files/Apache Group/Apache2/htdocs/aaa1/"
ServerName www.aaa1.jp
</VirtualHost>
<VirtualHost 192.168.1.11>
DocumentRoot "C:/Program Files/Apache Group/Apache2/htdocs/aaa2/"
ServerName www.aaa2.jp
</VirtualHost>
<VirtualHost 192.168.1.11>
DocumentRoot "C:/Program Files/Apache Group/Apache2/htdocs/aaa3/"
ServerName www.aaa3.jp
</VirtualHost>


ありがとうございました。

No.13817 投稿時間:2003年12月10日(Wed) 06:12 投稿者名:ranndo URL:

> ネームベースになってない物と思われ。
そのとおりでした。お手数おかけいたしました。
APACHEさま、みなさまありがとうございました。うまくいきました。


ご参考。

No.13820 投稿時間:2003年12月10日(Wed) 08:09 投稿者名:おやじ URL:http://www.aconus.com/~oyaji/

ご参考まで。
ネームベースのVirtualHostは、サーバ名がミスマッチすると先頭のVirtualHost(www.aaa1.jp)を
表示するので、例えば、aaa3.jpでも同じアドレスが牽けると、関係ない先頭に飛んでしまいます。
コンテンツが同じなら意味ありませんが、全く関係ないと混乱しますので、ServerAliasでワイルド
カード指定しておくほうがいいと思います。

NameVirtualHost 192.168.1.11
<VirtualHost 192.168.1.11>
DocumentRoot "C:/Program Files/Apache Group/Apache2/htdocs/aaa1/"
ServerName www.aaa1.jp
ServerAlias aaa1.jp *.aaa1.jp
</VirtualHost>
<VirtualHost 192.168.1.11>
DocumentRoot "C:/Program Files/Apache Group/Apache2/htdocs/aaa2/"
ServerName www.aaa2.jp
ServerAlias aaa2.jp *.aaa2.jp
</VirtualHost>
<VirtualHost 192.168.1.11>
DocumentRoot "C:/Program Files/Apache Group/Apache2/htdocs/aaa3/"
ServerName www.aaa3.jp
ServerAlias aaa3.jp *.aaa3.jp
</VirtualHost>


大変すみませんが、もう少し具体的にお願いいたします。

No.13838 投稿時間:2003年12月10日(Wed) 22:45 投稿者名:ranndo URL:

おやじさま私が気になっていた核心に触れていただき感謝しています。
そこで、確認の意味も含めて質問なのですが、
> ネームベースのVirtualHostは、サーバ名がミスマッチすると先頭のVirtualHost(www.aaa1.jp)を
> 表示するので、例えば、aaa3.jpでも同じアドレスが牽けると、関係ない先頭に飛んでしまいます。
とありますが、実際にミスマッチを起こしてみるにはどうしたらいいのでしょうか?
(結局のところミスマッチとはどういう現象なのでしょうか?)
というのは、最初の質問の結論は私の勘違いで正しくネームベースになっていなかったことです。
「NameVirtualHost 192.168.1.11」が抜けていたためです。
この現象を、わたしがミスマッチと勘違いしました。
ということで、自分なりにミスマッチを起こそうと思い、たとえば
http://www.aaa5.jp/
http://xxx.aaa1.jp/
などにアクセスしてみましたが、DNSエラーが返され、正しい動き
(先頭のaaa1にとばされない)をしました。

大変お手数ですが、よろしくお願いいたします。


DNSで牽けるホスト名がWWW以外にあると不一致になります。

No.13843 投稿時間:2003年12月10日(Wed) 23:42 投稿者名:おやじ URL:http://www.aconus.com/~oyaji/

> おやじさま私が気になっていた核心に触れていただき感謝しています。
> そこで、確認の意味も含めて質問なのですが、
> > ネームベースのVirtualHostは、サーバ名がミスマッチすると先頭のVirtualHost(www.aaa1.jp)を
> > 表示するので、例えば、aaa3.jpでも同じアドレスが牽けると、関係ない先頭に飛んでしまいます。
> とありますが、実際にミスマッチを起こしてみるにはどうしたらいいのでしょうか?
> (結局のところミスマッチとはどういう現象なのでしょうか?)
> というのは、最初の質問の結論は私の勘違いで正しくネームベースになっていなかったことです。
> 「NameVirtualHost 192.168.1.11」が抜けていたためです。

これも参考ですが、サーバがアドレスを一個しか持っていないなら、NameVirtualHost * でもOKです。

> この現象を、わたしがミスマッチと勘違いしました。
> ということで、自分なりにミスマッチを起こそうと思い、たとえば
> http://www.aaa5.jp/
> http://xxx.aaa1.jp/
> などにアクセスしてみましたが、DNSエラーが返され、正しい動き
> (先頭のaaa1にとばされない)をしました。

DNSエラーがでるものは、httpdまでくるわけではないので関係ありません。
アドレスが一つしかない環境で、DNSにwww以外のホスト名(ftp、mail、nsとか)があると、
ドメインだけの場合も含めて、いずれもサーバにアクセスしてきますので、このとき、
ServerNameと不一致になるので、先頭のVirtualHostに飛ぶということです。
今のままでは、例えば、http://aaa5.jpとかhttp://mail.aaa5.jpとすると、
www.aaa1.jpの内容が表示されます。これをさけるには、おやじの言った方法以外に、
リストの先頭にゴミ箱用のVirtualHostをつくり、各サイトへの正しいURLを見せたり、
URLを確認してくださいというようなメッセージを返したり、DocumentRootに何も置かずに
エラーにするなどの方法もありますね。サイト間の関係でどの方法がいいか考えられたら
どうでしょうか?このとき、先頭に書くVirtualHostは下記で大丈夫です。

<VirtualHost _default_:*>


非常にわかりやすくご説明いただきありがとうございました。

No.13851 投稿時間:2003年12月11日(Thu) 09:59 投稿者名:ranndo URL:

すべて納得のうえ解決することができました。
感謝感激大感謝です。;;
ありがとうございました。


|目次|掲示板|過去ログ目次|▲頁先頭|