37

Node.jsアプリケーションのデプロイについては、Nginxと並べてデプロイするチュートリアルをたくさん見てきましたが、2つを連携させるためのかなりのトリックがあります(NginxがWebSocketをサポートしていないなどの厄介なもの) 。これは私には少し複雑に思えます...

なぜ誰もがこの種のセットアップを行うのですか?Node.jsを使用しているときにNginxをデプロイすると、何か利点がありますか?Node.jsで静的ファイルを提供できませんか?

私はDjangoでたくさんのアプリを書いてきましたが、ドキュメントには、静的ファイルを提供するためにDjangoを使用するべきではないと書かれています。これは、これに最適化されていないためです。

4

3 に答える 3

28

ApacheとNGINXはどちらも、箱から出してすぐに多くのモジュールとサービスを提供する完全に開発されたWebサーバーです。それらは堅牢であると見なされており、ここ数年安定性が証明されています。

そのような利用可能なソリューションがあれば、車輪の再発明をする必要はありません。NGINXを使用してロードバランサーとルーティングを実装し、NodeJSを外部に公開せず、ローカルホストで実行する方が有利な場合があります。

NodeJSはサーバーソフトウェアと見なすことはできませんが、JavaScriptエンジンとライブラリ/モジュールを組み合わせたものと見なすことができます。サーバースクリプティングに多用されているという事実は、それをWebサーバーにしません。

上記を見逃してNodeJSに完全に切り替えることにした場合は、そのようなソリューションを維持することを検討してください。ロギング、起動/シャットダウンスクリプト、および監視により、タスクが見た目よりも複雑になる可能性があります。

さらに、NodeJS用に作成された多数のライブラリは、NodeJSによって重大な変更が導入されるため、新しいバージョンが提供されると破損する傾向があります。成熟度の欠如の代償としてそれを考慮してください。問題を恐れずにリスクを冒している場合は、NodeJSにアクセスしてください。

最後の注意:静的ファイルはNodeJSで提供できます。スクリプトがそれを読み取ってプッシュする場合があります。

更新:Node.jsを使用することにした場合は、Express.jsフレームワークの使用を検討してください。

于 2012-08-21T08:28:28.393 に答える
26

nginxの代わりにNodeを使用してもかまわない人もいます。dotCloudNodejistuなどの特定のクラウドは、完全にNode.jsで記述されたゲートウェイを使用します。主にWebSocketを処理できるようにするためです。しかし、Node.jsは非常に高速だからです。

これが最近オープンソース化されたdotCloudのゲートウェイですhttps://github.com/dotcloud/hipache

于 2012-08-21T08:18:07.203 に答える
4

全体としてnode.jsのみを使用することを好みます。その理由は、多くのノードアプリケーションにファイルサーバーが組み込まれているか、ファイルを提供するサーバーに依存しているためです。したがって、すべてのアプリケーションは、最適なファイルサーバーを使用して、ニーズに合わせてカスタマイズできます。

さらに、Apache / NGINXからnode.jsへのすべてのリクエストをプロキシする必要がある場合、パフォーマンスが少し低下します。ノードにリクエストを単独で処理させる方がはるかに簡単です。

于 2012-08-21T08:34:22.900 に答える