0

コンテンツを検索して提供する小さな Web サービス (コンテンツ サーバーなど) を作成しています。基本的に、これには 2 つの部分があります。1 つの動的部分は、クライアント認証を実行し、コンテンツに対して検索機能を提供します。2 番目の部分では、認証されたクライアントに静的コンテンツを提供します。

パフォーマンスとスケーラビリティの観点から、上記のサービスに適したアーキテクチャはどれですか?

  1. アプリケーションサーバー(Tomcat)を使用して両方を行うだけですか?
  2. しかし、コンテンツの圧縮などの簡単に構成可能なオプションを備えた静的コンテンツの提供には、apache の方が優れていると聞いています。では、Tomcat をリバース プロキシ (j2ep、noodle などを使用) として使用して、背後にある Web サーバーを apache するのはどうですか。背後にある apache サーバーがコンテンツを提供している間に、Tomcat は認証と検索を行うことができます。
  3. しかし、Tomcat は単一の連絡先であるため、パフォーマンスのボトルネックになる可能性があります。では、Apache Tomcat クラスタリングを再度使用して、セットアップ全体の負荷を分散してみませんか?

基本的に、各Tomcatが一連のApacheサーバーの背後にあるリバースプロキシとして機能するApache-Tomcatクラスターを見ています。この設定は可能ですか?誰もこれをやったことがありますか?私はこれを検索しましたが、ポインタを見つけることができませんでした。可能であれば、このアーキテクチャに潜在的な欠点はありますか?

それが悪いオプションである場合、この Web サービスの正しい方法は何ですか?

4

1 に答える 1

0

まず、静的コンテンツと非静的コンテンツの両方に tomcat を使用します。tomcat (バージョン 5 AFAIK から) は、静的コンテンツの提供でもうまく機能しています。しかし、これがうまくいかない場合は、フロントエンド サーバーとして Apache httpd を使用し、その背後に tomcat を使用することをお勧めします。私は mod_jk を使用しました。JKMount ディレクティブは、Tomcat に転送される呼び出しを apache に伝えることができます。したがって、JKMount ディレクティブに一致しないものは、Apache httpd 自体によって処理されます。したがって、静的コンテンツは httpd によって提供され、非静的リクエストは tomcat に送信されます。負荷に応じて、複数の tomcat を持つことができます。

ただし、静的コンテンツ リクエストがどのように認証されるかについては注意が必要です。

スケーリングできるようにするには、実際のコンテンツとそのアクセスの間に一定レベルの間接性を導入します。どこからでも取得できるコンテンツへのハンドルのようなものです。したがって、静的コンテンツを地理的に分散した多くの場所に複製できます (または CDN を使用します)。

これが少し役立つことを願っています。

于 2009-10-11T15:57:38.733 に答える