Java EE アプリケーションにおける静的コンテンツと動的コンテンツの分離
-
21-09-2019 - |
質問
私たちは IBM 製品を使用しており、通常はアプリケーション サーバーのリバース プロキシとして IBM Http サーバー (Apache と読みます) を使用しています。パフォーマンス上の理由から、アプリケーション サーバーの負担を少し軽減するために、http サーバーから静的コンテンツ (.gif、.jpg、.css、.html など) を提供します。
これまでのところ、ファイルを http サーバーに配布し、手動で構成する必要があります (せいぜいカスタム スクリプトを作成することです)。問題は、特にアプリを更新する必要がある場合に、すべてを同期させるのに必要な労力です。
これを「すぐに使える」状態でサポートする Java EE 製品はありますか?たとえば、マスターノードがアプリケーションを他のノードに配布し、すべての同期を保つ役割を担うクラスター構成のように、アプリケーションサーバーにこれを自動的に実行させる方法はありますか。
解決
これまでのところ、ファイルを http サーバーに配布し、手動で設定する必要があります (せいぜいカスタム スクリプトを作成することです)。
設定部分を理解しているかわかりません。通常、静的コンテンツを JSP やサーブレットと区別するのは非常に簡単です (一度区別できると、それほど変わりません)。
問題は、特にアプリを更新する必要がある場合に、すべてを同期させるために必要な労力です。
自動化!と メイビン (または 蟻, ただし、これにはもう少し作業が必要になります)。これを処理するために Web プロジェクトから別のアセンブリを作成するのは簡単です。Java EE ノードの場合は WAR、HTTP サーバーの場合は静的コンテンツの zip。
これを「すぐに使える」状態でサポートする Java EE 製品はありますか?
私の知る限り、いいえ。意外なことに、デプロイメントは Java EE の弱い分野です。ただし、Maven や 制御層.
他のヒント
私は、IBM製品に精通していないんだけど、一般的な方法は、ファイルそのものへのアクセス権を持つことができますので、代わりにWARファイルのディレクトリとしてアプリケーション(主に戦争を)展開することです。そこから、静的なコンテンツを提供することができますので、あなたが、Apacheでのエイリアスに展開ディレクトリをマップし、より。あなたがアプリケーションサーバにWEB-INFディレクトリへのすべてのアクセスをブロックする必要がある、とJSPファイル(.jspファイル、.jsfの使用、.doという、.actionなど)への経路へのすべての要求に注意してください。
WEB-INFをブロックすると、次のディレクティブを使用して行われます
<DirectoryMatch "(WEB-INF|META-INF)">
Order allow,deny
Deny from all
AllowOverride None
</DirectoryMatch>