wake-up-neo.com

Unterschied zwischen Webserver, Anwendungsserver und Datenbankserver

Ich habe irgendwo gelesen, dass eine Webanwendung aus einem Webserver, einem Anwendungsserver und einem Datenbankserver besteht. Was ist der Unterschied zwischen diesen drei?


Ich habe diese Frage gestellt, weil ich mich erinnere, als ich eine Website gehostet habe, war alles, was ich hatte, ein https -Login im Steuerungsfeld der Website, in dem ich alle meine Dateien in den htdocs -Ordner legte. Es gab keine drei getrennten Dinge wie den Webserver, den Anwendungsserver und den Datenbankserver.

40
OneMoreError

Webserver -

Server, auf dem Ihre Website gehostet wird. Auf diesem Server sind Webserver wie IIS, Apache usw. installiert.

Anwendungsserver -

Server, auf dem Ihre erstellten Anwendungen Ihre Datenbank, Ihren Webdienst usw. verwenden. Dieser Anwendungsserver hostet die Business-Schicht (umhüllt mit Webdiensten), geplante Jobs, Windows-Dienste usw.

Datenbankserver -

Auf dem Datenbankserver werden eine oder mehrere Datenbanken wie Oracle, SQL Server, MySQL usw. gehostet.


Wenn Sie sich auf htdocs beziehen, handelt es sich um einen Webserver. Die von Ihnen verwendete Datenbank muss auf einem anderen Server installiert sein, bei dem es sich um Ihren Datenbankserver handelt. Der Anwendungsserver kann auch auf demselben Webservercomputer installiert werden.

enter image description here

Referenz - Bereitstellungsmuster

37
Parag Meshram

Das wird oft verwirrend.

Erstens - "Server" kann sich auf eine physische Sache (einen Computer) oder eine logische Sache (eine Software) beziehen.

Web-, Anwendungs- und Datenbankserver-Software können alle auf demselben physischen Server-Computer ausgeführt oder auf mehrere physische Computer verteilt werden. Die meisten großen Websites verfügen über mehrere Computer. Die meisten "Consumer" -Hosting-Pakete laufen auf einer einzigen Box.

Die logische Trennung ist wie folgt.

Der Webserver verarbeitet HTTP (S) -Anfragen und leitet diese an "Handler" weiter. Sie verfügen über integrierte Handler für Dateianforderungen - HTML-Seiten, Bilder, CSS, JavaScript usw. Sie können zusätzliche Handler für Anforderungen hinzufügen, die sie nicht verwalten können - z. dynamische Seiten, die vom Anwendungsserver bereitgestellt werden. Webserver implementieren die HTTP-Spezifikation und wissen, wie Anforderungs- und Antwortheader verwaltet werden.

Der Anwendungsserver verarbeitet Anforderungen, die dynamische Seiten erstellen. Anstatt eine auf der Festplatte gespeicherte HTML-Seite bereitzustellen, wird der an den Endbenutzer gesendete HTML-Code dynamisch generiert. Gebräuchliche Sprachen/Frameworks hierfür sind Java/JSP, .Net (aspx), PHP, Ruby (on Rails oder nicht), Python usw. Die meiste Zeit läuft diese Anwendungsserversoftware auf demselben physischen Server wie der Webserver.

In der Datenbankserver-Software speichert die Anwendung ihre strukturierten Informationen. In der Regel ist dies eine benutzerdefinierte Software, mit der der Anwendungsserver mithilfe einer Programmiersprache Fragen wie "Wie viele Artikel hat Benutzer x in seinem Warenkorb?" Stellen kann. Beispiele sind MySQL, SQL Server, Oracle (alle "relationalen Datenbanken") sowie MongoDB, Redis und CouchDB ("NoSQL" -Lösungen).

Die Datenbanksoftware kann auf demselben physischen Computer wie der Webserver ausgeführt werden. In der Regel wird sie jedoch zuerst auf einer separaten physischen Hardware gehostet, wenn die Site skaliert werden muss.

33
Neville Kuyt