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:
どんな設定をしましたか?
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にとばされない)をしました。
大変お手数ですが、よろしくお願いいたします。
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:
すべて納得のうえ解決することができました。
感謝感激大感謝です。;;
ありがとうございました。