2012-10-24 18 views
27

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


fragte ich diese Frage, weil ich erinnere mich, als ich eine Website gehostet wird, alles, was ich ein https Login an die Zentrale der Website hatten, war, in der ich meine Dateien alle in htdocs Ordner. Es gab keine drei separaten Dinge wie den Webserver, den Anwendungsserver und den Datenbankserver.

Antwort

26

Web Server -

Server, auf dem Ihre Website gehostet wird. Dieser Server wird haben Webserver installiert wie IIS, Apache, usw.

Application Server -

Server, auf dem Ihre erstellten Anwendungen, die Ihre Datenbank verwendet, Web-Service, etc. Diese Anwendungsserver Host-Business-Schicht (umwickelt mit Web-Services), geplante Aufträge, Windows-Dienste, usw.

Database Server -

Datenbankserver müssen Ihre ein oder m Erz-Datenbank gehostet wie Oracle, SQL Server, MySQL, usw.


Wenn Sie beziehen sich auf htdocs dann es ist ein Web-Server. Die von Ihnen verwendete Datenbank muss auf einem anderen Server installiert sein, der Ihr Datenbankserver ist. Der Anwendungsserver kann auch auf demselben Webserver installiert werden.

enter image description here

Referenz - Deployment Patterns

+0

Es hatte auch eine Datenbank (MySQL) drin. – OneMoreError

+0

'Datenbank sowie MySQL'? MySQL ist eine Datenbank. Ich glaube, Sie haben Webserver und Datenbankserver auf demselben Computer. Sie können sie auch auf anderen Maschinen haben. –

+1

Lesen Sie folgenden Artikel auf MSDN - http://msdn.microsoft.com/en-us/library/ee658120.aspx –

-4

Web-Server: Der Server, auf dem alle HTTP-Anfragen behandelt werden, wird als Web-Server bekannt wo als Application Server: Einschließlich der Dienste von Web-Server, dh reagiert zu den HTTP-Anfragen reagiert es auch auf die Geschäftslogik, also nicht nur auf das HTTP-Protokoll Eg begrenzt. Gaming-Server, Chat-Rooms usw.

17

Dies wird oft verwirrend.

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

Web-, Anwendungs- und Datenbankserver-Software kann auf demselben physischen Server ausgeführt werden oder auf mehrere physische Computer verteilt sein. Die meisten großen Websites haben mehrere Maschinen; Die meisten "Consumer" -Hosting-Pakete laufen auf einer einzigen Box.

Die logische Trennung ist wie folgt.

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

Der Anwendungsserver verarbeitet Anforderungen, die dynamische Seiten erstellen. Anstatt eine HTML-Seite zu bedienen, die auf der Festplatte gespeichert ist, generieren sie dynamisch den HTML-Code, der an den Endbenutzer gesendet wird. Gemeinsame Sprachen/Frameworks hierfür sind Java/JSP, .Net (aspx), PHP, Ruby (on Rails oder nicht), Python usw. Die Anwendungsserver-Software läuft meistens auf demselben physischen Server-Rechner wie das Web Server.

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

Die Datenbanksoftware kann auf derselben physischen Maschine wie der Webserver ausgeführt werden, wird jedoch in der Regel zuerst auf einer separaten physischen Hardware gehostet, wenn die Site skaliert werden muss.