1台のWebサーバでマルチドメイン対応するには?

このQ&Aのポイント
  • 1台のWebサーバでマルチドメイン対応する方法を探しています。Apache+Tomcatを使用しており、Zシステムにはwww.z.comのURLでアクセスしたいと考えています。さらに、AコンテンツやBコンテンツなど、異なるコンテンツをそれぞれ別のドメインでアクセスさせたいと思っています。現在の方式では要件を満たせないため、他の方法を探しています。
  • ApacheのVirtualHostでは、他のドメインへの転送はリダイレクトしか方法がありません。また、DocumentRootの設定はパス指定となり、URL指定ができません。設定ファイル書き換えやApacheの再起動も避けたいと考えています。さらに、HTTPヘッダーのHost情報を利用してURLで振り分ける方法も試しましたが、うまくいきませんでした。
  • そこで、他の方法でマルチドメイン対応するためのアドバイスをお願いします。皆様の経験や知識から、よい方法があるか教えていただきたいです。
回答を見る
  • ベストアンサー

1台のWebサーバでマルチドメイン対応するには?

はじめまして。Silver1027と申します。 以下内容の解決策に困っています。お知恵をお貸しく ださい。 Apache+Tomactを使用したシステム構築をしています。 Tomcat上に搭載されるアプリケーションをZシステムと 仮定します。 以下のような要件があります。 1.Zシステムにはwww.z.comのURLにてアクセスします。 2.Zシステムには単独で外部に公開したいコンテンツが  あり、例えば  ・Aコンテンツ→www.a.com         (実際にはwww.z.com/a/)  ・Bコンテンツ→www.b.com         (実際にはwww.z.com/b/)  のようにしてアクセスさせたいと考えています。  すべて同一IPのマシンです。 3.www.a.comでアクセスした場合、www.z.com/a/へ  リダイレクトするのではなくあくまでブラウザの  アドレスバーはwww.a.comでありたいと考えていま す。 4.DNSについてはwww.a.comなどの個別ドメインの追加  を随時行っています。 5.Apache、Tomcatいずれも設定変更時の再起動を極力  避けたいと考えています。 このような要件に対し、以下の方式を検討してみまし たが、いずれも十分に要求を満たせそうにありませ ん。 ・ApacheのVirtualHostでは、他ドメインのURLへ転送  するにはリダイレクトしか方法がない(DocumentRoot設定はパス指定となりURL指定が出来な  い) ・設定ファイル書き換えはいずれにしてもApacheのリ  スタートがかかるためできれば避けたい ・HTTPヘッダーのHost情報を利用して、アプリケーシ  ョン到達前にURLで振り分けられないかを考えてみた  が挫折   なにかよい方法はありませんでしょうか? 皆様のお知恵、ご経験からアドバイスいただけました らと思います。 何卒よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • entree
  • ベストアンサー率55% (405/735)
回答No.1

リダイレクトが何故ダメなのでしょうか? Apache の再起動はやりたくないとのことですが、 # apachectl graceful を実行することにより、既存セッションを殺さずに (利用者に悪影響を与えることなく) 再起動することは可能ですけど。 HTTP プロトコルで通信するのはクライアントと Apache ですので、Apache で解決できないとなると難しいと思います。

silver1027
質問者

お礼

entree様、ご回答ありがとうございます。 リダイレクトがNGな理由は、その人いわく「Googleなどの検索エンジンではリダイレクトしているとその先をロボットが検索してくれない」などいろいろとあるようですが、最大の理由は「アドレスバーにリダイレクトされたアドレスを出したくない」というものです。こだわりがあるようで・・・。 gracefulオプションについては恥ずかしながらはじめて知りました。これは大変ありがたいアドバイスでした。ありがとうございます。(Windows版Apacheでも使えますよね・・・?) 再起動の問題はクリアできましたが、肝心のマルチドメインでの表示については、まだ検討しなければなりませんね。

その他の回答 (1)

  • entree
  • ベストアンサー率55% (405/735)
回答No.2

リダイレクトしたくないのであれば、 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 以下のバージョンでサーバを公開する場合は、サーバライセンスも必要になる可能性があるようですのでご注意下さい。

silver1027
質問者

お礼

entree様、追加のご回答ありがとうございます。 ご回答いただいた件ですが、VirtualHostを使用できないのは、要件の前提をお伝えしておりませんでした。 VirtualHostではご指摘のようにDocumentRootをパス指定してアクセスするように出来ますが、今回の要件では実際に見せたいサイトは動的に生成されており、物理ファイル(index.htmlなど)は存在しておりません。そのためパス指定するにもそのディレクトリが存在していない状態です。 実際に見せたいページはURLでは表現できるので、URLを記述できればいいのですが、そのときはRedirectになるので結果としてリダイレクトしか方法が無いのが現状です。

関連するQ&A

  • Apacheリクエストヘッダを制御してのリダイレクト

    apacheのリダイレクトで質問させていただきます。 http, httpsともに以下のようなリダイレクトを行いたいと思ってます。 (https) https://a.com/tenso/ 以下のアクセスを https://b.com/tenso/ にリダイレクト。 (http) http://a.com/tenso/ 以下のアクセスを http://b.com/tenso/ にリダイレクト。 どちらもドメインを置き換えたいといったシンプルな要件です。 が、現在httpsはLBで処理を行っており、apahe側では port80で処理しています。このため、https通信を認識できず リダイレクトが行えない状況です。 https通信の場合、LBからのリクエストヘッダに「SSL」とわかる文字列が挿入される設定になっているとのことで、このリクエストヘッダを 制御してリダイレクトを行えないものでしょうか? mod_proxyはssl非対応とのことと、あまり詳しくなく大変困ってます; どうぞよろしくお願いします。

  • マルチドメインドメイン対応のサーバーの考え方

    教えてください! 基本編として、1台のサーバー(グローバルアドレス)に対して ネームサーバーにて、ドメイン XXXX.com を割り当てて 外部より、XXXX.com へアクセスすると、上記サーバーの80ポートが叩かれ 指定した、ディレクトリ(WINの場合IIS)の内容がホームページとして表示されると言う 考え方で今までサイト運用をしてきたのですが、最近マルチドメイン対応のサーバーが ホスティング等で利用可能になりました。 マルチドメインドメイン対応と言う場合にもIPアドレスは1個であるそうです。 そうなると、XXXX.com と YYYY.com と ZZZZ.comへのアクセスに対して 同一のサーバー内でありながら、異なるディレクトリ内を表示すると言う事なのだと想像します。 この様な設定は、ネームサーバーで行うのか? 不思議と謎に成っております。 このような点について理解を深める事の出来るサイト及び 設定方法等ご存知の方 お力を貸してください! どうぞよろしくお願いします。

  • サブドメイン間のリダイレクト設定

    今までのサーバの設定は、ドメインの「www」部分があってもなくてもアクセスできるようになっていました。(例:http://www.domain.com/ と http://domain.com/ のどっちにアクセスしても、同じHTMLファイルが表示される) しかし、これから、SSLを導入することになり、サブドメイン名も同一しなければならなくなりました。 サブドメイン間のリダイレクト設定を行い、例えば、http://domain.com/或いはそのしたのどのページにアクセスしても(URL直打ちで)、自動的にhttp://www.domain.com/ にリダイレクトさせたいです。 これって、可能でしょうか。可能であれば、設定方法を教えて頂ければ幸いです。 どうぞよろしくお願い致します。

  • レンタルサーバーのマルチドメインについて

    ロリポップのレンタルサーバーを利用しています。 ドメインを2つ設定しました。仮にAドメイン、Bドメインとします。 Aドメインのサイトを見ている人が、BドメインをリンクURL以外で知る方法はありますか? 知る方法があるのであれば、教えて下さい。 逆に、知りえないよう対策が可能なのであればそちらも教えて下さい。 宜しくお願い致します。

  • サブドメインの設定で

    Red Hat Linux 7.3/Apache1.3.23で、サブドメインの設定を行ったのですが、 http://www.sub.******.com/というURLにアクセスするとうまくアクセス出来るのですが、 http://sub.******.com/ とwwwを省略したURLにアクセスするとサーバに繋がりません。 namedもApacheも再起動しました。www無しだとpingが通っていません。以前設定したサブドメインと設定に差は無いので、設定自体は間違えて無さそうなのですが…。どなたか原因分かる方おられますでしょうか?

  • ひとつのサーバーでドメインごとにアクセスされるフォルダを変えたい

    タイトルの通りです 下記の環境でサーバーを運営しています。 windowsXPpro SP2 Apache2.0.59 例えば http://www.hoge1.com/とURLに打ってアクセスされたら ルートフォルダ'www'の中にある'a'といフォルダ(の中のindex)にアクセスさせたい http://www.hoge1.com/とURLに打ってアクセスされたらルートフォルダ'www'の中にある'b'というフォルダにアクセスさせたいのですが、こういうことはひとつのPCのひとつのサーバーで可能なのでしょうか? ちなみにルータを通していますが、複数IP固定の設定はできません。 サーバー上の設定でそうなるようにしたいです。 よろしくお願いします。

  • googleAppsのURLを独自ドメインにしたい

    googleAppsのURLを独自ドメインにしたい 無料のGoogle Appsを使用しています。 (タブンStandard Edition) で、各サービスの通常使うURLを独自ドメインに変更したいと思っています。 サービスの設定→URLを変更で変更はしています。 (1)https://sites.google.com/a/[独自ドメイン部分] (2)http://sites.[独自ドメイン部分] デフォルトでは(1)なのを(2)に変更しています。 これだと、とりあえず(2)でトップページにアクセスすることは可能なのですが リダイレクトされ結局(1)のURLになってしまいます。 リダイレクトだけではなく、実URLとして独自ドメインを使用したいのですが、 こういうのはgoogleAppsで可能なのでしょうか?不可能なのでしょうか? 有料版でないと出来ないのでしょうか? また、類似のサービスでリダイレクトではなく実URLとして使用できるサービスがあれば それも教えてください。 よろしくお願いします。 ◎質問まとめ ・無料のgoogleAppsで実URLに独自ドメインを使用することは可能か ・有料のgoogleAppsで実URLに独自ドメインを使用することは可能か ・出来るのならその方法 ・実URLに独自ドメインを使用することは可能な類似サービスがあればその紹介

  • マルチドメインでの.htaccessについて

    新サイト(新ドメイン)に引っ越しをしたのですが、 マルチドメイン環境でのリダイレクトの方法がうまく行かず困っています。 お手数ですが、やり方を教えていただけないでしょうか。 前提として、旧サーバはマルチドメインで2つのドメインを使用しており、 ルート直下は下記の構成になっています。 /.htaccess /index.html /staff/ /corp/ /ex/  ←ここだけ別ドメインに設定(仮にhttp://hoge.comとします) http://hoge.comはそのまま使用したい、 それ以外のファイルすべてを新サーバ(新ドメイン)にリダイレクトしたい、 という状況です。 htaccessは下記のように設定しているのですが、 /ex/(http://hoge.com)も含めてすべてリダイレクトしてしまいます。 -------- RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} !(^/ex/) RewriteRule ^(.*)$ http://www.new.com/ [R=301,L] -------- 下記のサイトを参考にしており、RewriteRule以外はそのままです。 http://www.kaden1000.com/2012/11/fc2-28/ 参考サイトのように、RewriteRule ^$ とした場合リダイレクトしないため、 RewriteRule ^(.*)$ としています。 (ここが問題のような気はしています。。。) あまり詳しくないので、素人でわかるレベルで教えていただけないでしょうか。 よろしくお願いいたします。

  • レンタルサーバードメインから独自ドメインへの・・・

    レンタルサーバードメインから独自ドメインへのリダイレクトをしたいと思っています。 htaccessを駆使して、以下のように設定したのですが、思い通りに行きません。 どなたかアドバイス頂けないでしょうか。 よろしくお願いします。 --- RewriteEngine On RewriteCond %{HTTP_HOST} ^aaa\.lolipop\.jp\.* RewriteRule ^(.*) http://www.bbb.jp/ [R=301,L] ※実施したいこと:[aaa/lolipop.jp/]配下のフォルダ・パス全てにアクセスした時、[http://www.bbb.jp/]にリダイレクトさせたい。

  • apache を使いサーバをたてており、バーチャルドメインを使っているのですが、特定のドメインでしかアクセスできません。

    OSはCentOSです。 a.comとb.jpというドメインを取得しているのですが、a.comでは繋がるのにb.jpでは「サーバーの応答がありません」となってしまいます。 IPアドレスでのアクセスはできます。 a.comとb.jpは同じIPで登録してありますので名前解決が間違っているということはありません。 tailfでアクセスログを見てみたところ、b.jpにアクセスした際は全くログは書き出されませんでした。エラーログも同様です また、ためしにc.comというドメインを取得してアクセスしてみたところこれもまたアクセス不可能でした。 httpd.confの設定は間違っていないと思います。 どこに原因があるのでしょうか・・・分かる方いたらご教示お願いします。