web-dev-qa-db-ja.com

より良いアプローチは何ですか:静的ファイルをExpressまたはnginxで提供しますか?

Node.jsアプリケーションを作成しており、nginxをリバースプロキシとして使用しています。アプリケーションには、提供する必要のある静的ファイルとSocket.ioサーバーがあります。

Expressで静的ファイルを直接提供できることを知っています(express.staticミドルウェアを使用)。また、静的ファイルが置かれているディレクトリをnginxに直接向けることができるので、nginxによって提供されます。

だから、質問:どちらがより良いアプローチですか?それぞれのアプローチを使用しているときに、どの長所と短所に直面できますか?

17
serge1peshcoff

開発用:express、主に柔軟性が提供されるため...静的な場所と構造を開発中に非常に簡単に変更できます

本番用:nginx、はるかに高速であるため。 Node/expressはロジックの実行には適していますが、生のコンテンツを提供するには... nginxに勝るものはありません。また、gzip、負荷分散などの追加機能も利用できます...

それにもかかわらず、この質問はstackoverflowですでに何度も尋ねられています:

33
tato

Expressのドキュメントでは、可能な場合はリバースプロキシの使用を明示的に推奨していますこの記事 から引用するには:

Nginxは、静的ファイルの処理においてはるかに優れた仕事をすることができ、非動的コンテンツに対する要求がノードプロセスを詰まらせるのを防ぐことができます。

このテーマについて議論する記事は非常に多くありますが、詳細については説明しますが、Express開発者による推奨事項には必ず注意してください。

7
Matthew Daly