2011-07-22 14 views
0

私はTomcatサーバー(および他のJ2EEコンテナ)を配備するのに慣れていて、WARファイルを削除できるディレクトリがあります。 xyz.warというファイルがあるとしたら、/xyzで始まるパスに対してそのサーバーに対してGETを実行すると、リクエストはそのwarファイルのアプリケーションに渡されます。同じサーバーの複数のアプリケーション

今、私はnode.jsで類似のことをしたいと思います。私はいくつかのアプリケーションを持っており、JavaScriptとURLの両方の観点から異なる名前空間で動作させたいと思っています。これも可能ですか?

答えて

0

これは可能ですが簡単ではありません。それを行うための独自のフレームワークを構築する必要があります。 J2EEコンテナが提供するものの1つは、別々のクラスローダーを使用する分離です。そのような孤立は構築が難しいでしょう。しかし、隔離のセキュリティを無視すると、node.jsが別々のディレクトリにあるファイルを読み込む何らかのプラグインアーキテクチャを作成することは、あまり難しくありません。

+0

Grrr、私はそれを恐れていました。私に[言い換え]をさせてください(http://stackoverflow.com/questions/6793733/how-do-i-support-multiple-versions-in-node-js)。 – Malvolio

1

Javaの世界では、jvmがかなり重いので、同じjvmプロセスで複数のアプリケーションを展開する傾向があります。 Node.jsははるかに軽量で、各ノードアプリを別々のプロセスで実行できます。これには、プロセスごとの分離(バグのあるアプリケーションがすべてのヒープを使い果たした場合など)や、同じサーバー上で実行されている他のアプリケーションに影響を与えることなくノードアプリケーションを再起動する機能など、いくつかの利点があります。

それらを同じポートから実行させるには、それらの前にnginxまたはnode-http-proxyのようなものを入れます。新しいアプリケーションを検出して自動的に起動する必要がある場合は、 'appディレクトリ'を監視し、nginxの新しい設定を生成するスクリプトを書くことができます(たとえば、新しいディレクトリ 'xyz'を検出し、nginxの/ xyzそのディレクトリのノードアプリ)。

関連する問題