Webserver-Plattform
Unter Webserver-Plattform – auch Webplattform – versteht man[1]
- eine als Server arbeitende Kombination aus Betriebssystem und Web-Applikationssoftware auf einer Rechnerhardware, die hinsichtlich Daten und Software eine Mehrschichtigkeit besitzt, die als „Plattform“ aufzufassen ist, welche eine Client-seitig wahrnehmbare Anwendersicht besitzt, oder
- eine als Server arbeitende Kombination aus Betriebssystem, Web-Applikationssoftware, relationaler Datenbank und webfähiger, serverseitig interpretierter Skriptsprache auf einer Rechnerhardware, die hinsichtlich Daten und Software eine Mehrschichtigkeit besitzt, die als „Plattform“ aufzufassen ist, welche eine Client-seitig wahrnehmbare Anwendersicht besitzt.
Grundlegendes
Zusammenstellungen von Systemsoftware und Applikationssoftware für Webserver-Plattformen
Eine Webserver-Distribution ist eine – der einfachen Installation und Konfiguration dienende – betriebssystemspezifische Softwarezusammenstellung (solution stack, software bundle), die Webserver, Datenbank und Skriptsprache sowie Werkzeuge für Dateitransfer, Datenbankadministration, Webanalyse, Verschlüsselung und anderes enthält.
Webserver-Distributionen, Webserver-Plattformen:
- LAMP ... Linux + Apache, MySQL, PHP[2][3]
- LEMP ... Linux + nginx, MySQL, PHP[Anm. 1]
- XAMPP ... Linux, Windows, macOS, Solaris + Apache, MySQL, PHP, Perl[Anm. 2]
- WAMP ... Windows + Apache, MySQL, PHP[Anm. 3]
- WIMP ... Windows + IIS, MySQL, PHP
- MAMP ... Mac OS X + Apache, MySQL, PHP
- MEAN ... MongoDB, Express, Angular und Node.js[Anm. 4] Dabei dient das Node.js Module Express als Webserver.
- AMPPS ... Kombination aus LAMP (Linux), WAMP (Windows) und MAMP (Macintosh) mit einem Installer entwickelt von Softaculous, bestehend aus Apache, MySQL, MongoDB, PHP (auch Perl & Python).[Anm. 5]
Webserver-Plattform-Installation, Standalone-Webserver versus Paket-mitgelieferter Webserver
Eine Webserver-Plattform kann meistens einfach auf einem Computer installiert werden. Deswegen werden besonders von Anfängern installierbare Pakete wie XAMPP bevorzugt. Eine Installation der einzelnen Komponenten einer Webseite auf einem Server ist zeitaufwendig und fehleranfällig. Ein Emulations-Testsystem für solche Zwecke ist sicherlich sinnvoll. Doch sollte man zugleich auch mitbedenken, dass Scriptsprachen heutzutage auch einen eigenen HTTP Server mitliefern. So wird zum Beispiel die Scriptsprache PHP mit einem eigenen Webserver ausgeliefert.[4][Anm. 6] Ob sich solche Pakete für produktive Systeme eignen, siehe nachfolgende Abschnitte.
Über die Alternative, eine Webserver-Plattform auf einer physikalischen oder auf einer virtuellen Maschine zu betreiben
Ob es sinnvoll ist, eine Webserver-Plattform auf einer physikalischen bzw. virtuellen Maschine zu betreiben, hängt vom Anwendungsfall ab. Oft ist es sinnvoll, eine Datenbank auf einem getrennten physikalischen bzw. virtuellen System zu betreiben.[5][6] Neben Performanz, Skalierbarkeit spielen auch Sicherheitsüberlegungen eine Rolle.[7] Oftmals wird eine Datenbank z. B. für einen Webshop oder eine Inhouse-Applikation verwendet. In diesem Fall wäre es aus Sicherheitsgründen sinnvoller, die Datenbank auf einem getrennten System zu betreiben.
In den letzten Jahren stieg die Gefahr, dass Datenbanken Ziele von Ransomware-Attacken werden.[8] Auch setzt sich immer häufiger die Meinung durch, dass kein getrennter Webserver benötigt wird. Ein Webserver kann in eine Applikation integriert werden, z. B. mit node.js.[9]
Individueller virtualisierter Zuschnitt versus Performanz
Heutzutage wird mit sehr dynamischem Inhalt auf Webseiten gearbeitet. Eine Webserver-Plattform mit virtualisierten Anwendungen ist da eher ein Hindernis für Performanz. Es werden spezialisierte Prozesse benötigt, um Webinhalte zu generieren.[10]
Anderseits könnte es sinnvoller sein, für die individuellen Bedürfnisse ein Docker-Image zu erstellen, um Anwendungen in Containern kleinräumig zu virtualisieren und damit der Flexibilität eines individuellen Webserver-Plattform-Zuschnitts den Vorrang gegenüber der Webserver-Plattform-Performanz einzuräumen.[11] Eine erstellte Konfiguration kann mithilfe von Docker einfach auf weiteren Systemen installiert werden.[12]
Plattformeigenschaft einer Webserver-Plattform
Sucht ein Client eine Webserver-Plattform auf, so kann von diesem, abstrakt betrachtet, nur die „Plattformoberseite“ (obere Schicht) der Plattform aufgesucht werden, während das, was an Daten und an Software, auf der „Plattformunterseite“ (darunterliegende Schicht) liegt, für diesen unzugänglich und verborgen bleibt. Für den Client erschließt sich nur eine „Anwendersicht“ auf die Webserver-Plattform. Die Anwendungen, auf die die Webserver-Plattform zugeschnitten ist, können höchst unterschiedlich sein.
Ein einfaches Beispiel für eine Webserver-Plattform-Anwendung: Beispielsweise kann eine Web-zugängliche Datenbank einer öffentlichen Bibliothek als Anwendung aus einem Webportal mit unterschiedlichen Suchmaskenfunktionen bestehen, das mit einem Browser-Client auf der „Plattformoberseite“ der Webserver-Plattform aufgesucht wird, während sich auf der „Plattformunterseite“ unter anderem eine Datenbank befindet. Die Datenbankabfragen, die vom Anwender gemacht werden, wenn er einen bestimmten Zeitschriftenartikel oder Buchtitel in dieser Bibliothek sucht, werden von der „Plattformoberseite“ „nach unten“ zur Datenbank weitergeleitet, in der Datenbank verarbeitet und die Treffer jener Datenbankabfragen von der Datenbank auf der „Plattformunterseite“ – „nach oben“ lancierend – auf einem speziellen Set von Output-Webseiten angezeigt, durch welches sich der Anwender mit der Computermaus hindurchklicken kann.
Siehe auch
Literatur
- Oliver Liebel: Skalierbare Container-Infrastrukturen: das Handbuch für Administratoren. 3., aktualis. Aufl., Rheinwerk Verl., Bonn 2021, ISBN 978-3-8362-7772-3.
- Sebastian Wolfgarten: Apache Webserver 2: Installation, Konfiguration, Programmierung. 2., aktualis. Aufl., Studentenausg. (Open source library) Addison-Wesley, München 2007, ISBN 978-3-8273-2566-2.
- Reinhard Hofer: Webserver: Betrieb, Sicherheit, Codebeispiele. VDM – Verlag Dr. Müller, Saarbrücken 2006, ISBN 978-3-8364-0062-6.
- Jörg Krause: PHP 5: Grundlagen und Profiwissen; Webserver-Programmierung unter Windows und Linux. 2., aktualis. Aufl., Hanser, München 2005, ISBN 3-446-40334-5.
- Michael Hilscher: Der eigene Webserver: [der eigene Web-, FTP- und E-Mail-Server, komplettes Know-how für den dedizierten Webserver, Einrichtung und Administration eines LAMP-Systems]. Galileo Press, Bonn 2003, ISBN 3-89842-368-9.
Anmerkungen
- Unter LEMP Stack Resources and Q&A. lemp.io-Internetportal, ohne Datumsangabe, Website abgerufen am 6. August 2021, lässt sich auf die Frage „What’s a LEMP stack?“ (zu deutsch: „Was ist ein LEMP Stack?“) folgendes nachlesen: „LEMP is a variation of the ubiquitous LAMP stack used for developing and deploying web applications. Traditionally, LAMP consists of Linux, Apache, MySQL, and PHP. Due to its modular nature, the components can easily be swapped out. With LEMP, Apache is replaced with the lightweight yet powerful Nginx.“ Zu deutsch: „LEMP ist eine Abwandlung des allgegenwärtigen LAMP-Stacks, der für die Entwicklung und Bereitstellung von Webanwendungen verwendet wird. LAMP besteht herkömmlich aus Linux, Apache, MySQL und PHP. Durch den modularen Aufbau können die Komponenten einfach ausgetauscht werden. Mit LEMP wird Apache durch das leichte und dennoch leistungsstarke Nginx ersetzt.“
- Unter Was ist XAMPP? (FAQ #2165). strato.de-Internetportal, ohne Datumsangabe, Website abgerufen am 6. August 2021, wird auf die Frage „Was ist XAMPP?“ im ersten Satz der Antwort mit folgender Aussage aufgewartet: „XAMPP ist die Kombination des Apache Webservers, der Datenbank MySQL und der Skriptsprachen Perl und PHP.“
- Unter WAMPSERVER: Plate-forme de développement Web sous Windows. wampserver.com-Internetportal, ohne Datumsangabe, Website abgerufen am 6. August 2021, wird der sogenannte WampServer, wie folgt, beschrieben: „WampServer est une plate-forme de développement Web sous Windows pour des applications Web dynamiques à l’aide du serveur Apache2, du langage de scripts PHP et d’une base de données MySQL. Il possède également PHPMyAdmin pour gérer plus facilement vos bases de données.“ Zu deutsch: „WampServer ist eine Windows-basierte Webentwicklungsplattform für dynamische Webanwendungen mit Apache2-Server, PHP-Skriptsprache und MySQL-Datenbank. Er beherrscht auch PHPMyAdmin, um Ihre Datenbanken einfacher zu verwalten.“
- Unter Eine Einführung in LAMP, LEMP, MEAN, XAMPP, WAMP und AMPPS Stack. geekflare.com-Internetportal, 5. Mai 2021, ‚Abschnitt 3 MEAN‘, findet sich folgende Ausführung: „Der Mean-Stack ist ein Open-Source-JavaScript-Stack, mit dem Sie schnelle, robuste und wartbare produktionsbereite moderne Webanwendungen erstellen können. Der mittlere Stapel ist MongoDB, Express, Angular und Node.js.“
- Unter What ist AMPPS? ampps.com-Internetportal, ohne Datumsangabe, Website abgerufen am 6. August 2021, wird auf die Frage „What is AMPPS?“ („Was ist AMPPS?“) folgendermaßen geantwortet: „AMPPS is an easy to install software stack of Apache, Mysql, PHP, Perl, Python and Softaculous auto-installer that can be used on Desktops and office servers.“ Zu deutsch: „AMPPS ist ein einfach zu installierender Software-Stack, bestehend aus Apache, Mysql, PHP, Perl, Python und Softaculous Auto-Installer, der auf Desktops und Office-Servern verwendet werden kann.“
- Unter PHP HTTP Server: Handling HTTP Requests in PHP. phpapprentice.com-Internetportal, ohne Datumsangabe, Website abgerufen am 6. August 2021, werden folgende Ausführungen gemacht: „In PHP, you usually use a separate web server program that accepts HTTP requests and passes them to PHP to create a response. Common examples of separate web server programs are Apache and Nginx. However, PHP has a built in web server we can use during development.“ Zu deutsch: „In PHP verwendet man normalerweise ein separates Webserver-Programm, das HTTP-Anfragen entgegennimmt und an PHP weitergibt, um eine Antwort zu erstellen. Gängige Beispiele für separate Webserverprogramme sind Apache und Nginx. PHP hat jedoch einen eingebauten Webserver, den wir während der Entwicklung verwenden können.“
Einzelnachweise
- Eine Einführung in LAMP, LEMP, MEAN, XAMPP, WAMP und AMPPS Stack. geekflare.com-Internetportal, 5. Mai 2021.
- LAMP (Linux, Apache, MySQL, PHP). computerweekly.com-Internetportal.
- Stefan Luber, Florian Karlstetter: Definition: LAMP - Linux, Apache, MySQL und PHP: Was bedeutet LAMP? cloudcomputing-insider.de-Internetportal, 13. März 2019.
- Eingebauter Webserver. In: PHP Manual. php.net-Internetportal, ohne Datumsangabe, Website abgerufen am 6. August 2021.
- When do you move your database to a separate server? digitalocean.com-Internetportal, Community-Forum, 7. Februar 2020.
- Chris Pinnock: Getting Started With Multiple VPSs. vps.net-Internetportal, 11. Oktober 2020.
- Application web servers must be on a separate network segment from the application and database servers if it is a tiered application operating in the DoD DMZ. stigviewer.com-Internetportal (UCF STIGViewer), 30. September 2020.
- Calin Ghibu: New ransomware attacks databases instead of files in large scale attack. temasoft.com-Internetportal (Temasoft Network Security Products), 12. Januar 2017.
- Sam Ingalls: Web Server vs. Application Server. serverwatch.com-Internetportal, 18. Juni 2021.
- Sam Ingalls: Web Server vs. Application Server., Unterabschnitt „Dynamic content requires more server specialization“. serverwatch.com-Internetportal, 18. Juni 2021.
- Shahriar Shovon: DevOps: Set up a LAMP server with Docker. linuxhint.com-Internetportal, März 2020.
- Install a LEMP web server on a Linux virtual machine. ventuscloud.eu-Internetportal, ohne Datumsangabe, Website abgerufen am 6. August 2021.