6

JavaEEWebアプリケーションのデプロイメントモデルに関する質問があります。現在、WebアプリケーションをTomcat 6にWARファイルとしてデプロイしています。すべてのコンテンツは、画像や静的htmlページなどの静的コンテンツを含むWARファイルと一緒にパッケージ化されています。しかし、これらの静的コンテンツをHTTPサーバーにデプロイし、動的コンテンツを取得するためだけにアプリケーションサーバーを使用したいと思います。これらを分割するにはどうすればよいですか?誰かがこの種のことをして、私のシナリオに適した展開モデルを持っていますか?ヘルプをいただければ幸いです。

2つのWARファイルを1つは静的コンテンツのみで作成し、そのWARをHTTPサーバーにデプロイし、残りを別のWARファイルとしてデプロイしてアプリケーションサーバーにデプロイすることをお勧めしますか?ただし、このアプローチは、静的コンテンツが現在参照されているすべてのページに影響を与え、コードの変更が必要になります。これは、プロジェクトが巨大で、コードベースが非常に大きいため、非常に面倒です。

どんな戦略やアイデアでも大歓迎です。

4

3 に答える 3

1

これは、パフォーマンス上の理由から興味深いことです。

これを行うには、個別のデプロイメントスクリプト/デプロイメントファイルが必要です。1つのプロジェクトに複数のファイル/WAR/フォルダー/スクリプトをデプロイすることは問題ではありません。WARをデプロイし、データベースを更新する必要がある場合も同じです。

WARファイルと静的コンテンツを含むフォルダーをデプロイします。


編集

HTTPサーバーへの静的コンテンツのデプロイは、サーバーによって異なります。LinuxサーバーでApacheを使用する場合は、仮想ホストを設定する必要があります。

<VirtualHost *:80>
  # This first-listed virtual host is also the default for *:80
  ServerName www.example.com
  DocumentRoot /www/domain
</VirtualHost>

この例では、80ポート、任意のIPアドレス、およびサーバー名をリッスンする仮想ホストがありますwww.example.com。次に、これは/www/domainパスにリダイレクトされます。

ドキュメントには、さらに多くの例と構成オプションがあります。

于 2012-09-18T10:00:24.723 に答える
0

WARファイルをHTTPサーバーにデプロイすることはできません。AWARJavaWebアプリケーションに使用され、アプリケーションサーバーまたはサーブレットコンテナ(など)にデプロイする必要がありますTomcat。静的コンテンツを別のWebアプリケーションで分離するのは良い考えではないと思います。これが1つのプロジェクトである場合、次のほかに1つのWebアプリケーションである必要があります。

WARファイルには特別なフォルダ構造があり、JSPページ、Javaサーブレット、Javaクラス、HTMLページなどに加えて、Webアプリケーションを形成する特別なファイルが含まれています。

静的コンテンツを1つのアプリケーションに保持することができ、それについて悪いことは何もありません。

プロジェクトが非常に大きく、ファイルがたくさんある場合は問題ありません。そのようなプロジェクト構造を使用する必要があります。これは、理解しやすく読みやすいものであり、アプリケーションサーバーまたはサーブレットコンテナができるだけ多くのデプロイを処理します。内容はそのまま。

于 2012-09-18T09:47:39.870 に答える
0

バージョン4まで、Tomcatは静的コンテンツの提供にかなり時間がかかりました。これが、静的コンテンツから動的コンテンツを分割し、通常のWebサーバーを使用して後者を提供することが頻繁に推奨される理由です(あなたが言及した本は2002年に発行されました...)。最近のTomcatバージョンはこの問題に直面していないため、IMHOは分割を控えることができます。これは、組織とセキュリティの両方にとって悪夢になる可能性があります。

静的リソースの場合は、適切なキャッシュの構成に重点を置くことで、必要以上に頻繁に転送されないようにすることができます。

于 2012-09-18T10:43:23.203 に答える