- 締切済み
バーチャルホストでページがだぶってしまう
バーチャルホストで http.confに設定をしてやったんですが ちょっと最初からできなさそうなので質問します aa.xxx.xx <ーーこちらはバーチャルではなくデフォルトの場所 bb.xxx.xx <ーーこちらがバーチャルだとします をバーチャルホストに書いて バーチャルホストのほうのDefaultRootを/var/hpにし デフォルトはデフォルトなので/var/www デフォルトのほうはバーチャルなど書いていません 問題はバーチャルホストを有効にして デフォルトのaa.xxx.xxxにアクセスすると バーチャルホストのDefaultRootが読み込まれてしまいます たぶん何となく問題がわかっているんですが サーバ機のIPを2個に増やしたりできないのでしょうか? IPが同一だからだぶると思うんですがたぶん ドメインがaa.xxx.xxx bb.xxx.xxでも同じサーバ機のIPが同じなので おかしくなってしまいます サーバ機に複数のIPアドレスを割り当てる事はできるのでしょうか? もし複数のIPアドレスを割り当てるなら 192.168.1.10の送信はデフォルト 192.168.1.11はバーチャルホストで NameVirtualHost 192.168.1.11とやればうまくいきそうなんですが 詳しい方教えて下さいお願いします OSはLinuxです apache1.3.34です
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- kalze
- ベストアンサー率47% (522/1092)
今回のようなIPアドレスが1つの場合はネームベースのバーチャルホストになります。 その設定としては正常な動作をしています。 NameVirtualHost * <VirtualHost *> ServerName aa.example.jp DocumentRoot /var/www </VirtualHost> <VirtualHost *> ServerName bb.example.jp DocumentRoot /var/hp </VirtualHost> このうち、上のaa.example.jpのほうの記述はしてないのですよね? であれば、VirtualHostを有効にしている場合、VirtualHost ディレクティブの上からマッチングしていき、どれにもマッチしない場合は、最初に定義されているVirtualHost ディレクティブが使用されます。 つまり、質問者さんはbbのものしか定義してませんから、bbとしてアクセスされた場合はもちろんbbのものが、それ以外(つまりaa)でアクセスされた場合は、マッチするVirtualHost ディレクティブがありませんから、やっぱりbbのものが使われる。 VirtualHostディレクティブについては、デフォルトのものを最初に、それ以降にデフォルト以外のものを定義してみてください。 それで上手く動作するはずです。 ちなみに、IPアドレスが複数ある場合にIPアドレスによって変更したい場合はIPベースのバーチャルホストになります。 サーバ機に複数のIPアドレスを割り当てることはもちろん可能です。 その場合、必要な数だけNICを用意するのがある意味一番楽ですが、1つのNICに複数のIPアドレスを割り振ることもできます。 Linuxのようなので、ifconfig コマンドを使用すれば可能です。 普通にgoogleで検索すれば情報はたくさんでてくるので詳細は割愛。 ただ、外部公開サーバではなく、ローカル専門でしょうか? ローカル専門ならローカルIPアドレスを割り振ればいいだけですが、外向けだとグローバルIPアドレスを割り振らないと、ルータが対応できるかどうか。 (ローカルIPアドレスでできないわけではないでしょうが、めんどくさそうですね。やったこともやろうとおもうこともなかったのでなんともいえませんが)