質問:
JBOSSには、ユーザーが提供するさまざまなURLを他のURLに解決する方法がありますか?つまり.
http://OurAppUat/ => http://OurAppUat/web/app?environment=UAT
http://OurAppSIT/ => http://OurAppSIT/web/app?environment=SIT
背景:
「どのような問題を解決しようとしているのか?」と思わない限り、このビットをスキップしてください。
JBossでホストされているサードパーティが開発したWebアプリがあります。
このアプリは、当社の運用システムです。内部でのみ利用可能です。カスタマイズがいくつかあり、SIT、UAT、および実稼働レプリカ環境があり、カスタマイズをテストして実稼働の問題を再現できます。
さまざまな理由で、環境をホストしているサーバーを切り替える必要があります(たとえば、現在のUAT環境が使用されている間にSITサーバーでUATの更新されたコピーを準備し、移動する前にユーザー/テスターを更新されたインスタンスに切り替えます)元のUATサーバーに対するSITの更新)。
同じサーバー上で複数の環境を個別にホストすることができます。しかし、可能な場合はこれを回避して、別の環境で行われているテストの影響を受けないようにし、同じホストを共有している他のインスタンスと関係なく、必要に応じてサーバー/サービスを再起動できるようにします。
私たちがやろうとしていること
ユーザーは現在、次のようなURLでアプリに接続しています。
http://myServer01/web/app?environment=UAT
http://myServer02/web/app?environment=SIT
これを次のように単純化したい:
http://OurAppUat/
http://OurAppSIT/
DNSを使用すると、次のように取得できます。
http://OurAppUat/web/app?environment=UAT
http://OurAppSIT/web/app?environment=SIT
利点は、これにより、ユーザーが使用するURLに影響を与えることなく、舞台裏でサーバーを切り替えることができます(そしておそらく、負荷分散を追加できます)。これは、DNS名を正しいリソースのIPに再ポイントすることで実現されます。
URLの残りを削除することのさらなる利点は、URLが人間が読めるようになることです。を使用すると、ユーザーはURLを見て、URLのどの部分を読み取るかを理解することなく、自分がどの環境にいるかを知ることができます環境名)。
同様の質問
JBossは書き換えルールをサポートしています これをサポートするために使用できます。ドキュメントから、最初にこの構成をserver.xmlファイルに追加する必要があります。
<Valve className="org.jboss.web.rewrite.RewriteValve" />
次に、rewrite.propertiesファイルを次のようなもので作成する必要があります。
RewriteRule ^/$ /web/app?environment=UAT [L]