- ベストアンサー
1台のWebサーバでマルチドメイン対応するには?
- 1台のWebサーバでマルチドメイン対応する方法を探しています。Apache+Tomcatを使用しており、Zシステムにはwww.z.comのURLでアクセスしたいと考えています。さらに、AコンテンツやBコンテンツなど、異なるコンテンツをそれぞれ別のドメインでアクセスさせたいと思っています。現在の方式では要件を満たせないため、他の方法を探しています。
- ApacheのVirtualHostでは、他のドメインへの転送はリダイレクトしか方法がありません。また、DocumentRootの設定はパス指定となり、URL指定ができません。設定ファイル書き換えやApacheの再起動も避けたいと考えています。さらに、HTTPヘッダーのHost情報を利用してURLで振り分ける方法も試しましたが、うまくいきませんでした。
- そこで、他の方法でマルチドメイン対応するためのアドバイスをお願いします。皆様の経験や知識から、よい方法があるか教えていただきたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
リダイレクトが何故ダメなのでしょうか? Apache の再起動はやりたくないとのことですが、 # apachectl graceful を実行することにより、既存セッションを殺さずに (利用者に悪影響を与えることなく) 再起動することは可能ですけど。 HTTP プロトコルで通信するのはクライアントと Apache ですので、Apache で解決できないとなると難しいと思います。
その他の回答 (1)
- entree
- ベストアンサー率55% (405/735)
リダイレクトしたくないのであれば、 www.a.com www.b.com www.z.com の3つの名前ベース・バーチャルホストを作成してあげれば済む問題だと思いますが。 以下は例ですが、Windows 版の Apache についてはそれほど詳しくないので、パスの書き方が間違っているかもしれません。あと、Tomcat との連携の問題は考慮していませんが・・・。 <VirtualHost www.z.com> DocumentRoot C:\dir_z Alias /a C:\dir_a Alias /b C:\dir_b </VirtualHost> <VirtualHost www.a.com> DocumentRoot C:\dir_a </VirtualHost> <VirtualHost www.b.com> DocumentRoot C:\dir_b </VirtualHost> 余談ですが、Windows 2000 以下のバージョンでサーバを公開する場合は、サーバライセンスも必要になる可能性があるようですのでご注意下さい。
お礼
entree様、追加のご回答ありがとうございます。 ご回答いただいた件ですが、VirtualHostを使用できないのは、要件の前提をお伝えしておりませんでした。 VirtualHostではご指摘のようにDocumentRootをパス指定してアクセスするように出来ますが、今回の要件では実際に見せたいサイトは動的に生成されており、物理ファイル(index.htmlなど)は存在しておりません。そのためパス指定するにもそのディレクトリが存在していない状態です。 実際に見せたいページはURLでは表現できるので、URLを記述できればいいのですが、そのときはRedirectになるので結果としてリダイレクトしか方法が無いのが現状です。
お礼
entree様、ご回答ありがとうございます。 リダイレクトがNGな理由は、その人いわく「Googleなどの検索エンジンではリダイレクトしているとその先をロボットが検索してくれない」などいろいろとあるようですが、最大の理由は「アドレスバーにリダイレクトされたアドレスを出したくない」というものです。こだわりがあるようで・・・。 gracefulオプションについては恥ずかしながらはじめて知りました。これは大変ありがたいアドバイスでした。ありがとうございます。(Windows版Apacheでも使えますよね・・・?) 再起動の問題はクリアできましたが、肝心のマルチドメインでの表示については、まだ検討しなければなりませんね。