4

これをserverfaultに投稿しましたが、ビューや応答がありません。

Node.js を使用するときに Web サーバーが必要かどうかについて、ここでたくさんの投稿を読みましたが、答えは常に、静的ファイルを提供する場合は「はい」のようです。

私の質問はこれです。私が取り組んでいるサイトがほとんど動的である場合、Node.js をサーバーと動的部分として使用し、すべての静的ファイル (css、js、画像など) を CloudFront に配置してそれらを提供することはできませんか?上?このようにして、キャッシング(varnishまたはredisまたはあなたが持っているものを介して)、またはnginxのようなhttpサーバーを実行し、Node.jsに到達するためにプロキシすることを心配する必要はありません(私が読んだことは、socket.ioで問題を引き起こします)。

同様のトピックに沿って、Amazon の ELB はロード バランサーとして十分でしょうか、それともサイトがロード バランシングが必要なほど大きくなった場合、何か他のことをする必要がありますか? 前もって感謝します!

4

2 に答える 2

5

node.js アーキテクチャの決定について明確に話すことはできませんが、CloudFront と ELB に関する質問にはお答えできます。

CloudFront は静的アセットの優れた CDN ですが、いくつかの落とし穴があります。ことわざにあるように、「コンピューター サイエンスには、キャッシュの無効化と名前付けという 2 つの難しい問題しかありません」。静的アセットを同じ名前で更新されたアセットに置き換えたい場合は、特定の CF ノードがアセットをキャッシュする期間を決定するcache-control-headers をいじり始める必要があります。設定が低すぎると、CF でキャッシュするメリットはほとんどありません。大変な作業です。アセットのバージョンを管理し、アセットと更新されたアセット参照を同時に展開するようにアプリケーションをセットアップすることを強くお勧めします。現時点では、API 呼び出しまたはその他の方法を介して CF からオブジェクトのキャッシュを手動で期限切れにする方法はありません。

ELB スケーリングについて: はい。それらを使用します。Netflixはそうです、そして彼らができるならあなたもできます. ELB を使用するための鍵は、アプリケーションのトラフィックにおける ELB の役割を理解することです。高可用性にする必要があります。つまり、複数のアベイラビリティ ゾーンで一連の Web サーバーを維持し、ELB がそれらをヒットするように適切に構成されていることを確認します。実際、Netflix は最近、「Asgard」と呼ばれる自社のクラウド管理アプリケーションをオープンソース化しました。チェックアウトすることをお勧めします。リンクされたブログ投稿には、ELB の使用に関する優れた説明があり、Asgard はダウンタイムなしでクラウド展開を管理する適切な方法のように見えます。

于 2012-08-23T17:21:36.807 に答える
3

Express のような Node.js のフレームワークを使用している場合は、静的ファイルの場所を簡単に指定して、CDN を使用できます。Express cdnのようなものを簡単に使用できます。. 負荷分散が必要な場合、それを処理する方法はいくつかありますが、EBS で十分でしょう。

于 2012-08-23T17:36:32.433 に答える