1

目標:

異なるドキュメントルートの下で互いに独立した複数のライブnode.jsサーバーを使用します。

NGINXの使用

server {
    server_name .lolwut1.com;
    root /var/www/html/lolwut1;
    # proxy pass to nodejs
    location / {
        proxy_pass    http://127.0.0.1:5001/;
    }
}

server {
    server_name .lolwut2.com;
    root /var/www/html/lolwut2;
    # proxy pass to nodejs
    location / {
        proxy_pass    http://127.0.0.1:5002/;
    }
}

/var/www/html/lolwut1/app.js

var http = require('http');
var server = http.createServer(function (request, response) {
  response.writeHead(200, {"Content-Type": "text/plain"});
  response.end("lolwut1\n");
});
server.listen(5001);

/var/www/html/lolwut2/app.js

var http = require('http');
var server = http.createServer(function (request, response) {
  response.writeHead(200, {"Content-Type": "text/plain"});
  response.end("lolwut2\n");
});
server.listen(5002);

だから私が...

node app.js/var/www/html/lolwut1/app.jsヒットlolwut1.com私はすべて元気です。

質問:

  1. しかし、2番目のノードサーバーを起動したい場合はどうなりますか?
  2. これは悪いアプローチですか?...私はこれを間違った方法で考えていますか?
  3. connect.vhostNGINXではなくルーターとしてnode.jsをディレクティブとともに使用することの長所/短所は何ですか?
4

2 に答える 2

3
  1. ノードアプリを開始および停止するには、永久に使用します。
  2. あなたはそれを正しくやっています!このアプローチは私にとってかなり長い間うまくいきました。
  3. vhostの接続利点: nginxをインストールして構成する必要はありません。スタック全体はnode.jsです。

    Nginxの利点: Nginxは成熟した安定したWebサーバーです。クラッシュしたり、奇妙な動作を示したりする可能性はほとんどありません。また、静的サイト、PHPサイトなどをホストすることもできます。

    私の場合、Nginxの特定の機能が必要でない限り、all-node.jsスタックを作成するために、Connectvhostまたはnode-http-proxyを選択します。

于 2013-02-21T03:53:01.027 に答える
1

しかし、2番目のノードサーバーを起動したい場合はどうなりますか?これは悪いアプローチですか?...

cdし/var/www/html/lolwut2/て実行するとnode app.js、ポート5002で2番目のサーバーが起動し、lolwut2.comが機能するはずです。

私はこれを間違った方法で考えていますか?

これは、十分なメモリと十分なCPUパワーがある場合に、同じサーバー上で複数のノードアプリを実行するための有効な方法です。これは、同じマシン上で単一ノードアプリをスケーリングして、複数のノードを実行し、upstreamディレクティブ(https://serverfault.com/questions/179247/can-nginx-roundなど)を使用して複数のコアを利用するための優れた方法でもあります。 -robin-to-a-server-list-on-different-ports

于 2013-02-21T03:53:19.823 に答える