回答:
Node.jsの前に別のWebサーバーを配置することには、いくつかの理由があります。
静的ファイルをCDN経由で、またはVarnishなどのキャッシュサーバーの背後から提供する必要があると言って、2番目の箇条書きの点に注意します。これを実行している場合、オリジンがNodeであるか、NginxであるかApacheであるかは問題ではありません。
特にnginxに関する警告:WebSocketを使用している場合は、最新バージョンのNginx(> = 1.3.13)を使用してください。これは、接続をアップグレードしてWebSocketを使用するためのサポートを追加しただけだからです。
:80authbindを使用するだけでルートとしてノードを実行しなくても、予約済みポートにバインドできます:thomashunter.name/blog/using-authbind-with-node-js
pauljzの回答にもう1つの理由を追加するために、フロントエンドサーバーを使用して、バックエンドサーバーを再起動するとき、またはなんらかの理由でクラッシュしたときに、最大502エラーページを提供できるようにします。これにより、ユーザーは接続を確立できないというエラーを受け取ることはありません。
Nodeを使用して静的ファイルを提供することは、あなたが何をしているのかを知っている限り、どのような状況でも問題ないと信じていますます。アプリケーションサーバーを使用して静的ファイルを提供することは確かに新しいパラダイムです。競合するテクノロジー(PHP、Ruby、Pythonなど)の多くが、アプリケーションサーバーの前にHTTPDやNginxなどのWebサーバーを必要とするためです。 。
Nodeで静的ファイルを提供することに対して私がこれまで読んだすべての客観的な理由は、あなたが最もよく知っているものを使用する、またはよりよくテストされた/より安定していると認められるものを使用するという考えに関係しています。これらは実際的に言えば非常に有効な理由ですが、純粋に技術的な関連性はほとんどありません。
Nodeでは不可能なクラシックなWebサーバーで可能な機能を見つけない限り(そして間違いなくそうでしょう)、どちらのアプローチでも問題ないので、あなたが最もよく知っているもの、または作業したいものを選択してください。
Nginx対Apacheについては、Nodeと同じように「プレイ」します。ノードに関係なくそれらを比較する必要があります。
systemdではpm2、などとの統合を理解する必要があります。 。
express.staticETagとキャッシュ制御ヘッダーをうまく処理します。