
はじめまして。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で振り分けられないかを考えてみた
が挫折
なにかよい方法はありませんでしょうか?
皆様のお知恵、ご経験からアドバイスいただけました
らと思います。
何卒よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
リダイレクトが何故ダメなのでしょうか?
Apache の再起動はやりたくないとのことですが、
# apachectl graceful
を実行することにより、既存セッションを殺さずに (利用者に悪影響を与えることなく) 再起動することは可能ですけど。
HTTP プロトコルで通信するのはクライアントと Apache ですので、Apache で解決できないとなると難しいと思います。
entree様、ご回答ありがとうございます。
リダイレクトがNGな理由は、その人いわく「Googleなどの検索エンジンではリダイレクトしているとその先をロボットが検索してくれない」などいろいろとあるようですが、最大の理由は「アドレスバーにリダイレクトされたアドレスを出したくない」というものです。こだわりがあるようで・・・。
gracefulオプションについては恥ずかしながらはじめて知りました。これは大変ありがたいアドバイスでした。ありがとうございます。(Windows版Apacheでも使えますよね・・・?)
再起動の問題はクリアできましたが、肝心のマルチドメインでの表示については、まだ検討しなければなりませんね。
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 以下のバージョンでサーバを公開する場合は、サーバライセンスも必要になる可能性があるようですのでご注意下さい。
entree様、追加のご回答ありがとうございます。
ご回答いただいた件ですが、VirtualHostを使用できないのは、要件の前提をお伝えしておりませんでした。
VirtualHostではご指摘のようにDocumentRootをパス指定してアクセスするように出来ますが、今回の要件では実際に見せたいサイトは動的に生成されており、物理ファイル(index.htmlなど)は存在しておりません。そのためパス指定するにもそのディレクトリが存在していない状態です。
実際に見せたいページはURLでは表現できるので、URLを記述できればいいのですが、そのときはRedirectになるので結果としてリダイレクトしか方法が無いのが現状です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
カスタムコントロールのOCAファ...
-
Excelでdatファイルを作成??
-
Excel VBA シートを指定して...
-
ファイルのアクセス権の取得
-
バッチファイルが作成できない
-
auoneのwebメールを使っている...
-
bat ファイルでフォルダ作成&移動
-
圧縮ファイルから復元
-
Windowsのメモ帳でジョークウイ...
-
【エクセルVBA】エクセルからテ...
-
FTPサーバからファイルをダウン...
-
iPhoneのChromeでブックマーク...
-
ASPからEXCELファイルの設定を...
-
エクセルVBA
-
テキストファイルを開かずに中...
-
こんなパソコンは新品ですか??
-
フォルダ作成用バッチファイル...
-
subversionからファイル取得時...
-
キンドルのPDFを印刷したい。
-
同じフォーマットのCSVファイル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB(6.0)で作成したDLLをVB(.Net...
-
Domain指定のクッキー
-
カスタムコントロールのOCAファ...
-
HTMLコーティングスキルとは?
-
パスの省略形を作成するには
-
.NET で C# を使い、他のソフト...
-
シャボン玉が舞うような演出
-
ファイル指定を、ハードコード...
-
仮想パスの意味
-
フォトショップで図形の角を変...
-
VBAを使い、Web上からファイル...
-
Excelでdatファイルを作成??
-
複数のテキストファイルをexcel...
-
Microsoft Access エラー 3051
-
ダウンロード不可PDFファイルは...
-
【Excel VBA】PDFを作成して,...
-
batファイル処理でのテキストフ...
-
バッチファイルが作成できない
-
バッチによるショートカットの...
-
Access2003で「オブジェクト'○○...
おすすめ情報