2012-10-28 12 views
7

node.jsを使用して3つのサイトを計画しています。私はサイトの中でいくつかの共通のテンプレートを持っている。 3つのサイトをすべて単一のnode.jsインスタンスで実行する必要がありますか?node.jsで複数のサイトを実行する

私は、単一のhttpサーバー上で複数のドメインを実行できる「vhost」ミドルウェアを認識しています。これを行うためのより良い選択肢はありますか?

私はまた、いくつかの静的なHTMLテンプレートを持っていて、node.jsでこれをどう扱うべきかわからないのですか?

最後に、この種のセットアップのオプションをホスティングしたいと思いますか?

+0

ようになります。このポストをチェックしてください:http://stackoverflow.com/questions/5009324/node-js-nginx-and-now – Pardoner

答えて

14

私自身も、まったく同じことをしなければなりませんでした。あなたがしたいことは、何らかのリバースプロキシを使用することです。

私が使用するものはここにある:https://github.com/nodejitsu/node-http-proxy

は、単にプロキシパッケージをインストールします。npm install http-proxy

私は何をしてプロキシは、ポート80でサーバー上で実行しているされて、私は、各ドメインにDNSを設定しましたこのサーバーを指す。

各アプリケーションは同じサーバー上で実行されています(画面を使用しています)。例えば

MySiteApplication1 - 3001 
MySiteApplication2 - 3002 
MySiteApplication3 - 3003 

そして、プロキシサーバーのファイルは、あなたがnginxのを使用する必要があり、この

var httpProxy = require('http-proxy'); 

var server = httpProxy.createServer({ 
    router: { 
    'mysite1.com': 'localhost:3001', 
    'mysite2.com': 'localhost:3002', 
    'mysite3.com': 'localhost:3003' 
    } 
}); 

server.listen 80 
+0

ブレンダンありがとう、あなたはどこにあなたのノードのアプリケーションをホストしていますか? httpProxyはどのようにパフォーマンス面で機能しましたか?静的なデータがありますか?はいの場合、どうやってそれを扱っていますか?乾杯しました –

+1

私が購入したVPSでホストしています。リノードのようなものは大丈夫です。静的なデータの場合は、おそらくnginxのようなものを使用したいと思うでしょうが、私は問題に遭遇していません。あなたはそれをテストするのに 'ab'を使うことができます:) – Menztrual

+1

この回答は古いです。それは "別のモジュールに属している"ため、 'router-'オプションを 'node-http-proxy' [削除](https://github.com/nodejitsu/node-http-proxy/issues/652)してください。 ['http-master'](https://github.com/encharm/http-master)はこれに対する答えと思われ、' node-http-proxy'を内部的に使います。 – Nateowami

関連する問題