私は主に私のプロジェクトにnode.jsを使用しています。開発にはnodemon
、プロダクションにはforever
を使用します。私の構造は、このようなものかもしれないので プロダクションのNode.jsを永遠に接続し、vhosts/nginxの代わりに接続しますか?
bootstrap.js
apps/
admin/
front/
api/
と私bootstrap.jsは、次のようになります。私は私のアプリを起動したい
// Get Express
var express = require('express');
// Create express server
var app = express.createServer();
// Configure Development Environment
app.configure('development', function() {
//app.use(express.vhost('localhost', require('./apps/front')));
app.use(express.vhost('localhost', require('./apps/admin')));
app.use(express.vhost('localhost', require('./apps/api')));
app.listen(3000);
});
// Configure Production Environment
app.configure('production', function() {
app.use(express.vhost('example.com', require('./apps/front')));
app.use(express.vhost('admin.example.com', require('./apps/admin')));
app.use(express.vhost('api.example.com', require('./apps/api')));
app.listen(80);
});
私はforever start bootstrap.js
とbootstrap.js
を使用して、定義されたvhostアプリを起動します。私はそれ自身のポートとのバーチャルホストは、今では永遠のbootstrap.jsを監視し、これが結果として持っている3000
私の問題にリスニングに耳を傾け、それぞれのバーチャルホストを持っているように
のバーチャルホストのいずれかがいずれかのために失敗した場合理由は永遠にbootstra.jsを再起動するので、他の仮想ホストも不必要に再起動します。私の質問には、私の場合にはどのような方法がありますか?
Iかかわらず、代わりにこのような構造を有すること1つのbootstrap.jsファイルを持つ:admin.js
front.js
api.js
apps/
admin/
front/
api/
を、私はバーチャルホストを使用しない、この場合には、それらの根のjsファイルのそれぞれに対してforever start
を使用しかし、私は犯罪者が何らかの形でそれを必要としていると信じています。
私は、その場合には、私はのは、nginxのを使用し、各アプリケーションのための次のような構成を持つようにバーチャルホスト接続ドロップかかわら:
server
{
listen 80;
server_name admin.example.com;
access_log /var/log/nginx/admin.example.com.access.log;
error_log /var/log/nginx/admin.example.com.error.log;
root /home/panosru/domains/example.com/apps/admin/public;
location ~* ^.+\.(svg|jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|pdf|txt|tar|wav|bmp|rtf|js|flv|swf|html|htm)$ {
root /home/panosru/domains/example.com/apps/admin/public;
}
location/{
proxy_pass http://admin.example.com:3001;
}
}
私は私を提供するためにnginxのを使うようにnginxので、私はいくつかのより多くの利点を持っていることがわかります静的コンテンツはノードではなく、ノードの不要なオーバーヘッドになります。
あなたはどう思いますか?私は正しいか、代わりに私に何か良いことを提案できますか?
ありがとうございます!
はい私は自分の質問に答えましたが、私はちょうどいくつかの確認が必要です、私は子供のプロセスフォークと分かち合ってくれて分かっていませんでしたが、あなたが言うように、正しいことをする最善の方法は?また、私が聞いて期待していたいくつかのタイプのものは、nginx varnishやそれに類するものになるでしょう、私はちょうどその理由を私がその質問をした理由を明らかにするために言っています:)答えに努力を取ってくれてありがとう:) – panosru