Trotz des Gegensatzes, den der Begriff „Anwendungsserver im Vergleich zum Webserver“ impliziert, werden die beiden Servertypen im Internet in der Regel zusammen für einen gemeinsamen Zweck eingesetzt: die Erfüllung von Benutzeranforderungen nach Inhalten einer Website. Es gibt keine Standarddokumente, die die Eigenschaften von Webservern und Anwendungsservern definieren, aber wir wollen uns ansehen, wie die Begriffe allgemein verstanden werden.
Die grundlegende Aufgabe eines Webservers besteht darin, Anforderungen von Clients nach statischen Inhalten einer Website (HTML-Seiten, Dateien, Bilder, Videos usw.) entgegenzunehmen und zu bearbeiten. Der Client ist fast immer ein Browser oder eine mobile Anwendung, und die Anforderung erfolgt in Form einer Hypertext Transfer Protocol (HTTP)-Nachricht, ebenso wie die Antwort des Webservers.
Die grundlegende Aufgabe eines Anwendungsservers besteht darin, seinen Clients Zugriff darauf zu verschaffen, was gemeinhin als Geschäftslogik bezeichnet wird, die dynamische Inhalte generiert, d. h. es handelt sich um Code, der Daten umwandelt, um die spezielle Funktionalität bereitzustellen, die von einem Unternehmen, einem Dienst oder einer Anwendung angeboten wird. Die Clients eines Anwendungsservers sind häufig selbst Anwendungen und können Webserver und andere Anwendungsserver umfassen. Die Kommunikation zwischen dem Anwendungsserver und seinen Clients kann in Form von HTTP-Nachrichten erfolgen, was jedoch nicht zwingend erforderlich ist, wie es bei der Kommunikation zwischen Webservern und ihren Clients der Fall ist. Viele andere Protokolle sind beliebt, einschließlich der Varianten von CGI.
Bei einer typischen Bereitstellung werden auf einer Website, die sowohl statische als auch dynamisch generierte Inhalte bereitstellt, Webserver für die statischen Inhalte und Anwendungsserver für die dynamische Generierung von Inhalten betrieben. Ein Reverse Proxy und ein Load Balancer sind einem oder mehreren Webservern und einem oder mehreren Webanwendungsservern vorgeschaltet, um den Datenverkehr zunächst auf der Grundlage der Art der angeforderten Inhalte und dann auf der Grundlage des konfigurierten Lastausgleichsalgorithmus an den entsprechenden Server weiterzuleiten. Die meisten Load-Balancer-Programme sind auch Reverse-Proxy-Server, was die Architektur der Webanwendungsserver vereinfacht.
Warum stellt sich die Frage, ob es sich um einen Anwendungsserver oder einen Webserver handelt? Das liegt vor allem daran, dass sich das Design und die Verwendung der beiden Servertypen zunehmend überschneiden, da die Anforderungen an Websites gestiegen sind. Viele beliebte Anwendungen fungieren sowohl als Webserver als auch als Anwendungsserver (z. B. Apache HTTP Server, Express, Hapi und Koa).
Eine weitere Überschneidung besteht darin, dass einige Webanwendungsserver HTTP als Kommunikationsprotokoll verwenden. Ebenso sehen einige Webserver wie Anwendungsserver aus, weil sie über integrierte Module und Funktionen verfügen, die gängige Sprachen wie PHP nativ unterstützen, oder als Proxy fungieren und Anforderungen von HTTP in das von der Anwendung verwendete Protokoll (wie FastCGI) übersetzen.
NGINX Plus und NGINX sind die besten Lastausgleichs-Lösungen ihrer Klasse, die von stark frequentierten Websites wie Dropbox, Netflix und Zynga eingesetzt werden. Mehr als 350 Millionen Websites weltweit vertrauen auf NGINX Plus und NGINX Open Source, um ihre Inhalte schnell, zuverlässig und sicher bereitzustellen.
NGINX Plus ist ein äußerst effizienter Reverse Proxy und Load Balancer, wenn er vor Web- und Anwendungsservern eingesetzt wird, mit Übersetzungsmodulen für verschiedene Arten von Anwendungsservern, einschließlich FastCGI und SCGI. NGINX Plus vereint mehrere Funktionen, einschließlich Web-Serving, erweiterten Lastausgleichs, Caching, Verwaltung und Überwachung sowie Anforderungsweiterleitung, alles in einer flexiblen, kosteneffizienten Lösung für die schnelle und zuverlässige Bereitstellung statischer und dynamischer Inhalte, was die Kundenzufriedenheit und den Umsatz steigert. Es ist die vollständige Plattform für die Anwendungsbereitstellung, die für moderne Hochleistungs-Websites unerlässlich ist.