2017-07-22 2 views
0

Ich bin neu bei Node.js. Ich habe meinen ersten Node.js Server gebaut. Ich mache einige Forschung, um die Leistung von Knoten js Server in der Produktion zu verbessern. Also habe ich etwas über NGINX und Process Manager (PM2) erfahren.Können wir sowohl NGINX als auch PM2 für die Produktionsbereitstellung von node.js verwenden?

NGINX:

  1. Es kann die eingehenden Anfragen Lastenausgleich.
  2. Es kann als Reverse-Proxy für unsere Anwendung dienen.

PM2:

  1. Es ist unsere Anwendung als Cluster aufteilen kann, obwohl es in eingebauter Load Balancer hat.
  2. Wir können die Anwendung überwachen und neu starten, wenn sie abgestürzt ist.

Können wir beide für die Produktion verwenden?

Obwohl Load Balancer gibt es in PM2 kann ich nur PM2 verwenden?

Was ist der Vorteil von NGINX gegenüber PM2?

Wenn ich Load Balancer mit NGINX und Clustering mit PM2 verwende, wird es eine bessere Leistung als die Verwendung nur eines (NGINX oder PM2) geben?

+0

NGINX für Reverse-Proxy ohne Zweifel, vielleicht können Sie nur den Cluster mit PM2 machen und lassen Sie nginx seine Magie zu tun (hat keinen Sinn um das Gleichgewicht zwei Mal zu laden) –

+0

oder auch, verwenden Sie den Load Balancer in PM2 auf einem einzelnen Server und verwenden Sie Nginx, wenn Sie mehrere Server ausgleichen möchten –

Antwort

1

Dies ist ein großes Thema, aber lassen Sie mich helfen und geben Sie ein paar Hinweise.

Nginx ist viel mehr als nur ein Reverse-Proxy. Es kann static content, can compress the response content dienen, kann mehrere Anwendungen auf einem anderen Port auf der gleichen VM und vieles mehr ausführen.

PM2 hilft Ihnen im Wesentlichen, den Durchsatz Ihres Dienstes zu skalieren, indem Sie ihn im Cluster-Modus ausführen und alle Kerne der Box nutzen. Lesen Sie diesen Stackoverflow answer um mehr darüber zu erfahren.

nun Ihre Frage

Können wir sowohl für die Produktion nutzen zu beantworten?

Ja und Sie sollten. Nginx kann auf Port 80 ausgeführt werden. PM2 kann auf Port 3000 (oder einem anderen Port) ausgeführt werden, der dann den Datenverkehr innerhalb der Instanzen der App verwalten kann.

Gzip allein wird einen großen Unterschied in der App Endbenutzerleistung machen. Hier

ist ein good article den Fall, dass Sie Code Hilfe, wie es einzurichten

+0

Dies ist nützliche Informationen :) –

Verwandte Themen