web-dev-qa-db-ja.com

ユーザーに長いURLの入力を要求する代わりに、ホームページのURLを処理するようJBossを設定します

質問:

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のどの部分を読み取るかを理解することなく、自分がどの環境にいるかを知ることができます環境名)。

同様の質問

1
JohnLBevan

JBossは書き換えルールをサポートしています これをサポートするために使用できます。ドキュメントから、最初にこの構成をserver.xmlファイルに追加する必要があります。

<Valve className="org.jboss.web.rewrite.RewriteValve" />

次に、rewrite.propertiesファイルを次のようなもので作成する必要があります。

RewriteRule  ^/$  /web/app?environment=UAT  [L]
1