Ein Application Server ist ein Server, der eine Anwendung ausführt, statt fertige Dateien auszuliefern. Er nimmt eine Anfrage, lässt Programmcode darüber laufen und gibt das Ergebnis zurück; der Webserver davor leitet weiter und liefert das Unveränderliche selbst aus.
- Application Server
Ein Server, der eine Anwendung ausführt, statt fertige Dateien auszuliefern.
Beispiel: „Der Webserver reicht jede Anfrage an die Anwendung an den Application Server weiter.“In der PHP-Welt übernimmt das PHP-FPM, in der Java-Welt Tomcat oder WildFly, bei Node.js die Anwendung selbst. Der Begriff stammt aus der Java-Welt der 1990er Jahre.
Abgrenzung zum Webserver: Dieser spricht HTTP und liefert Dateien aus. Der Application Server führt den Code aus; oft laufen beide auf derselben Maschine.
Servertyp | Was er bereitstellt | Protokoll und Port |
|---|---|---|
Application Server | die laufende Anwendung | intern über FastCGI oder HTTP |
die Datenbank | MySQL 3306, PostgreSQL 5432 | |
Dateien für andere Rechner | SMB 445, NFS 2049 | |
E-Mail und Postfächer | SMTP 25 und 587, IMAP 993 |
Wie Webserver und Application Server zusammenarbeiten
Über eine Weitergabe. Der Webserver nimmt die Anfrage an, liefert Bilder und Stylesheets selbst und reicht alles Übrige an die Anwendung weiter, bei PHP über FastCGI, bei Node.js als Reverse Proxy über HTTP.
Daraus folgt die Arbeitsteilung bei der Fehlersuche: Ein 502 heißt, dass der Webserver steht und die Anwendung schweigt. Ein 500 heißt, dass die Anwendung antwortet und dabei stolpert.
Warum ein eigener Application Server sinnvoll ist
Wegen der Trennung von Last und Neustart. Wer die Anwendung auf einer eigenen Maschine betreibt, kann sie neu starten, ohne die Auslieferung statischer Dateien zu unterbrechen, und beide unabhängig voneinander vergrößern.
Für die meisten Websites ist das ein Schritt zu früh. Ein Server mit Webserver, Anwendung und Datenbank trägt sehr weit, und die Trennung beginnt üblicherweise bei der Datenbank.
Woran ein Application Server im Betrieb scheitert
An den Prozessen. Jede gleichzeitige Anfrage braucht einen, und ihre Zahl ist begrenzt; sind alle belegt, warten die übrigen in einer Schlange. Genau daraus entsteht eine Antwortzeit, die unter Last plötzlich einbricht.
Der zweite Fall ist der Neustart: Eine Anwendung, die beim Start eine halbe Minute braucht, erzeugt in dieser Zeit Fehler, wenn der Webserver schon Anfragen weitergibt. Dagegen hilft ein Umschalten erst nach der Bereitschaftsmeldung.