3

私は現在node.jsを学んでいて、それを愛しています。ただし、実際には1つのサイトにしか適合しないように思われることに気づきました。したがって、mydomain.comをホストするのに最適ですが、それを使用して実際の完全なWebサーバーを構築したい場合はどうでしょうか。つまり、mydomain.com、example.com、yourdomain.comなどをホストしたいと思います。これにはどのようなソリューション(モジュール)が利用できますか?リクエストオブジェクトからURLを解析し、適切なディレクトリから読み取ることを考えていました。たとえば、example.comのリクエストを受け取った場合は、example_comディレクトリから読み取ります。または、mydomain.comからリクエストを受け取った場合は、mydomain_comディレクトリから読み取ります。ここでの問題は、これがパフォーマンスとスケーラビリティにどのように影響するかわからないことです。

マルチノードを調べましたが、まだプロセスの概念に完全には従っていません(私はノードの初心者です)。

どんな提案でも大歓迎です。

4

2 に答える 2

4

これはいくつかの異なる方法で行うことができます。1つの方法は、リクエストが行われたドメインを確認してWebアプリケーションに直接書き込み、アプリケーション内でルーティングすることですが、アプリケーションが非常に基本的でない限り、アプリケーションがかなり肥大化し、乱雑になる可能性があります。このようなことをするのに良い時期は、すべてのドメインですべてがほぼ同じであるブログプラットフォームを作成している場合です。主な違いは、データをクエリして適切なデータを表示する方法にある可能性があります。

この場合、おそらくリクエストを使用して、どのブログがアクセスされているかを確認します。

(ほとんどのWebサイトのように)すべてポート80を使用して、同じサーバー上でいくつかの異なるドメインをホストする場合は、各要求を異なるプロセスにプロキシする必要があります。これは、nginxまたはノード自体を使用して行うことができます。それはすべてあなたのニーズに最も合うものに帰着します。bouncyは、nodejsモジュールとしてこれを実行するための簡単な方法であり、かなり印象的なベンチマークがあります。多くのnodejsサーバーはとにかく静的コンテンツを提供するためにnginxを使用するため、nginx ( nginxを使用したプロキシ)はおそらく最も頻繁に使用される方法です。

http://blog.noort.be/2011/03/07/node-js-on-nginx.html https://github.com/substack/bouncy/

于 2012-08-09T20:22:24.900 に答える
0

connectのミドルウェア(エクスプレスでも利用可能)を使用して、ヘッダーvhostに基づいて個別のリクエストハンドラにリクエストをディスパッチできます。Host:これは、すべてが同じポート上の同じノードプロセスによって処理されていることを前提としています。本当に個別のプロセスが必要な場合は、nginxをリバースプロキシとして使用することをお勧めします。

于 2012-08-09T21:58:41.513 に答える