1

開発プロジェクトをホストするためのサイトがあります。各プロジェクトはnode.jsファイルです。問題は、同時に 1 つのプロジェクトしかオンラインにできないことです。別のポートでホストしている場合を除きます。しかし、次のような 2 つのプロジェクトを公開したいとします: my_site.com/foomy_site.com/bar、最初のプロジェクトは "foo.js" によって管理され、2 つ目のプロジェクトは "bar.js" によって管理されます。どうやってやるの?

4

3 に答える 3

2

前にプロキシが必要です。個別のノード プロセスごとに異なるポートを割り当てます。プロキシは、ポート 80 のトラフィックを適切なバックエンド ノード プロセスに転送します。

これは node-http-proxy ( https://github.com/nodejitsu/node-http-proxy ) または任意の Web サーバーで実現できます。Nginx と lighttpd を使用すると、驚くほど簡単になります。Apache はそうではありませんが、それでも完全に実行可能です。

于 2013-04-29T01:01:51.643 に答える
1

Node プロセスにリバース プロキシするように Nginx プロセスをセットアップします。Nginx プロセスはポートを保持し、リクエストをバックエンド プロセスに送信し、リクエストをバックエンド プロセスに送信my_site.com/fooします。node foo.jsmy_site.com/barnode bar.js

このようにして、Node プロセスは完全に独立した状態を保ち、そのうちの 1 つが普及した場合に後で別のサーバーに簡単に分離できます。

于 2013-04-29T01:01:36.507 に答える
0

Express/Connect を使用している場合は、次のようなものを使用できます。

var bar = require("./bar"),
foo = require("./foo");
app.use(express.vhost("my_site.com/bar", bar));
app.use(express.vhost("my_site.com/foo", foo));

別ファイルです。

注:テストされていません

于 2013-04-30T00:55:09.720 に答える