プロジェクトのアーキテクチャにはフロントエンドにAngular 2が、Tomcat(またはJBoss)でJava EEが実行されています。これまでのところ、Tomcatでもフロントエンドを実行しています。nginxでAngular 2フロントエンドを使用する利点は何ですか?
別のnginxサーバーでAngular 2を実行する利点はありますが、意味がありますか?
プロジェクトのアーキテクチャにはフロントエンドにAngular 2が、Tomcat(またはJBoss)でJava EEが実行されています。これまでのところ、Tomcatでもフロントエンドを実行しています。nginxでAngular 2フロントエンドを使用する利点は何ですか?
別のnginxサーバーでAngular 2を実行する利点はありますが、意味がありますか?
nginxサーバーを使用することは意味があります。 Angularアプリは、HTML、js、画像などの静的なファイルで構成されています。ユーザーがあなたのアプリのURLを入力すると、まずブラウザにダウンロードされ、動的データのリクエストが行われます。
Tomcatの下にWAR(または展開された)内にAngularアプリを配置すると、アプリの各ユーザーはTomcatにアプリのリンク先ページを表示するようリクエストします。 Tomcatと他のアプリケーションサーバーは、要求ごとにスレッドを作成します。これはメモリを必要とします(Servlet 3.0はこれを少し助けました)。何千人ものユーザーがいる場合、Tomcatのインスタンスは単に死んでしまうかもしれません。
静的リソースをnginx(各リクエストに大きなオーバーヘッドはありません)に配置することで、アプリケーションがブラウザにダウンロードされてデータが要求されるまで、Tomcatは何もする必要はありません。
もう1つの利点は、nginxサーバでロードバランシングを設定できるため、クラスタ内のTomcatインスタンスの1つにリクエストをリダイレクトすることです。