正しいJBossのアプリケーションにサブドメインを指示するには?
-
19-09-2019 - |
質問
のJBossへの新規およびいくつかのアプリケーションを構成しています。私は、Apacheウェブサーバでこれを行う方法を知っているが、JBossを使用しませます。
私は正常にRedHatのボックスは、JBoss 4.2に3つのアプリケーションを展開しています。
私のサーバーがfruit.mycompany.com呼び出された場合、私は3つのアプリケーションをこのようにアクセスすることができます:
http://fruit.mycompany.com:8080/quince
http://fruit.mycompany.com:8080/pineapple
http://fruit.mycompany.com:8080/lime
次に、私は、サーバーの果実の別名である3つのサブドメインを作成します。
http://quince.mycompany.com
http://pineapple.mycompany.com
http://lime.mycompany.com
どのように私はそれが対応するアプリケーションだ時に各サブドメインを指すように得ることができますか?
私は http://quince.mycompany.comするのhref = "HTTP <実際に開くようにしたいです: //fruit.mycompany.com:8080/quince」のrel = "nofollowをnoreferrer"> http://fruit.mycompany.com:8080/quince を。
はApacheで、Iは、正しい文書ルートに各サブドメインを指すように仮想ホストのタグを使用します。私は、JBossやTomcatのでそれを行う方法を教えてください。
私は(Tomcatがmod_rewriteのようなものを持っていない)リダイレクトでそれを行うことができますか?
解決 2
私は、Tomcatとあきらめています。
状況があまりにも複雑になった。
私は(のJBossの別のインスタンス上で)すでにポート80上で実行されているウェブサイトを持っている。
私は、ポート8080上で、独自のJBossインスタンス上でこれらの3つのアプリケーション、マルメロ、パイナップルとライムを実行しています。
私の問題を解決するために、私はポート80上で実行されているウェブサイトのインデックスページ上のJavaScript関数を書きました。
私が呼び出されているドメインを参照して、ポート8080上の適切なWebサイトにリダイレクトするために、の場所をチェックします。
スクリプトは次のようになります
var whois=location+" ";
if (whois.indexOf("quince.mycompany.com") > -1)
{
setTimeout('window.location.replace("http://quince.mycompany.com:8080/quince/");', 10);
exit;
}
if (whois.indexOf("lime.mycompany.com") > -1)
{
setTimeout('window.location.replace("http://lime.mycompany.com:8080/lime/");', 10);
exit;
}
...
// otherwise redirect to the app running on port 80
setTimeout('window.location.replace("http://fruit.mycompany.com/otherapp/");', 10);
これは私が望んでいたまさにありませんが、少なくとも私のユーザーは、ショートカットURLを持っている、と彼らはポート番号を覚えておく必要はありません。 http://lime.mycompany.com にはにリダイレクトする - > <のhref = "のhttp://ライム。 langara.bc.ca:8080/lime」のrel = "nofollowをnoreferrer"> http://lime.langara.bc.ca:8080/lime の
他のヒント
Tomcatは仮想ホストをサポートしています。あなたは基本的にする必要があります:
1)Tomcatのポートの代わりに8080の80に "聞く" に変更します。
2)サーバーを一覧表示するにはTomcatのserver.xml
を変更します:
<Engine name="Catalina" defaultHost="quince">
<Host name="quince" appBase="quince_apps"/>
<Host name="pineapple" appBase="pineapple_apps"/>
<Host name="lime" appBase="lime_apps"/>
</Engine>
3) "_apps" フォルダの対応する 'ルート' フォルダに各アプリケーションを移動します。
私は似たような状況にあったときは、、私の代わりにApacheのリダイレクトを使用することにしました。しかし私は、Apacheが既に静的なページ(パブリックWebサイト)を提供する持っていた。
あなたがTomcatのmod_jkを見てきました http://tomcat.apache.org/connectors-doc/ に?