Sind Django, node.js und Nginx auf Augenhöhe? [geschlossen]

Ich bin ziemlich verwirrt über ihre Verwendung und was sie sind. Ich dachte, sie seien alle Webserver, aber in den Communitys behandeln die Leute sie so, als ob sie alle unterschiedlich genutzt würden.

Kann jemand bitte auf den Unterschied in Bezug auf ihre Verwendung hinweisen?

„Webserver“ ist ein sehr weit gefasster Begriff. Genauer gesagt ist NGinx ein klassischer Webserver und Proxy, während Django ein Anwendungsframework zum Schreiben von Webanwendungen ist und Node.js irgendwo zwischen einem Anwendungsframework und einer herkömmlichen Allzweck-Programmierumgebung angesiedelt ist.

Antworten (1)

Node.js und Django sind in interpretierten Sprachen (Javascript und Python) geschrieben. Für einen schnellen Webserver verwendet man kompilierte Sprachen (nginx ist in C geschrieben).

Sie können node.js oder django verwenden, je nachdem, welche Sprache Sie besser beherrschen. Sie generieren mit ihnen dynamische Inhalte unter Verwendung von Datenbanken und komplexen Mustern und Logik.

Sie verwenden nginx, um statische Inhalte wie Bilder bereitzustellen. Sie werden normalerweise nicht vom Server generiert, sondern als Dateien bereitgestellt. Das geht sehr schnell.

Hier ist ein Beispiel, wie man nginx mit node.js verwendet , und hier ist, wie man nginx mit django verwendet (dafür benötigen Sie auch eine WSGI-Anwendung, siehe Tutorial).

Ich frage mich auch, ob node.js und django dynamische Daten bereitstellen, und wenn nginx statische Daten bereitstellt, was ist gut an der Verwendung von nginx?
NGinx kann auch dynamische Daten, entweder klassische PHP- oder CGI-Seiten, oder mit dem Lua-Modul generierte Daten bereitstellen. Es kann viele Dinge tun, die Node.js und Django nicht (oder nicht einfach) können, wie z. B. schnelle Komprimierung im laufenden Betrieb, HTTP/2, komplexes Multihosting, Proxying für andere Web-Apps und das Erzwingen eines komplexen Zugriffs steuert.
@AustinHemmelgarn Oh, also ist es wirklich üblich, sie zu verwenden und beide in vielen Anwendungen auf dem Markt zu mischen?
@Poream3387 Grundsätzlich ja. Nginx ist eine der beliebtesten Reverse-Proxy-Optionen und als einfacher Front-End-Server für andere Webanwendungen sehr beliebt, da es kinderleicht zu konfigurieren ist. Apache hat wahrscheinlich immer noch einen höheren Marktanteil, aber ich würde wetten, dass dies eher an der Dynamik als an tatsächlichen technischen Gründen liegt.
@Poream3387 ja, es ist am häufigsten. Ich habe nur Django mit nginx (nicht node.js) verwendet, aber in ihrer Dokumentation heißt es: „Konfigurieren Sie Ihren Webserver so, dass er die Dateien in STATIC_ROOT unter der URL STATIC_URL bereitstellt.“ docs.djangoproject.com/en/2.1/howto /static-files/deployment Also ja, es wird empfohlen, sowohl nginx als auch django zu verwenden, wenn Sie django verwenden.