Apache HTTP Server
| Apache HTTP Server
| |
|---|---|
| |
| Basisdaten
| |
| Entwickler | Apache Software Foundation[1] |
| Erscheinungsjahr | 1995 |
| Aktuelle Version | 2.4.54[2] (8. Juni 2022) |
| Betriebssystem | eingeschränkt plattformunabhängig |
| Programmiersprache | C[3][4][5][6] |
| Kategorie | Webserver |
| Lizenz | Apache-Lizenz, Version 2.0[7], Apache-Lizenz, Version 1.1[8] |
| httpd.apache.org | |
Der Apache HTTP Server [əˈpætʃi] ist ein quelloffenes und freies Produkt der Apache Software Foundation und einer der meistbenutzten Webserver im Internet.[9] Neben Faktoren wie Leistungsfähigkeit, Erweiterbarkeit, Sicherheit, Lizenzkosten-freiheit und dem Support durch eine sehr große Community ist seine langjährige Verfügbarkeit für unterschiedlichste Betriebssysteme einer der Gründe für seine hohe Verbreitung, am häufigsten wird er als LAMP-System eingesetzt.
Geschichte[Bearbeiten | Quelltext bearbeiten]
Eine Gruppe von acht Entwicklern begann 1994 den Webserver NCSA HTTPd zu erweitern. Dies waren im Einzelnen: Brian Behlendorf, Roy T. Fielding, Rob Hartill, David Robinson, Cliff Skolnick, Randy Terbush, Robert S. Thau und Andrew Wilson mit Unterstützung von Eric Hagberg, Frank Peters und Nicolas Pioch.
Sie gaben dem Ergebnis ihrer Arbeit den Namen Apache HTTP Server und veröffentlichten diesen im April 1995. Er war das Gründungsprojekt der Apache Software Foundation.
Namensherkunft[Bearbeiten | Quelltext bearbeiten]
Der Name wurde aus Respekt vor dem nordamerikanischen Indianerstamm der Apachen gewählt.[10] Nicht korrekt ist, dass der Name ein Homophon von „a patchy server“ sei, was so viel wie „ein zusammengeflickter Server“ bedeuten würde. Diese Deutung entstand durch den Umstand, dass der Apache HTTP Server ursprünglich eine gepatchte Erweiterung des alten NCSA HTTP Servers war.[11]
Eigenschaften und Funktionen[Bearbeiten | Quelltext bearbeiten]
Neben Unix und Linux unterstützt Apache Win32, NetWare sowie eine Vielzahl weiterer Betriebssysteme. In Apache 2.4 wurde der Support für ältere, lange schon nicht mehr weiter entwickelte Betriebssysteme wie BeOS, TPF und A/UX beendet.[12] In Version 2.0 wurde die Stabilität und Geschwindigkeit des Servers – vor allem auf Nicht-Unix-Systemen – erheblich verbessert: Die Bibliothek Apache Portable Runtime (APR) stellt eine Verallgemeinerung wichtiger Systemaufrufe zur Verfügung, sodass die individuellen Stärken des jeweiligen Betriebssystems ausgenutzt werden können. Hinzu kommen verschiedene Multiprocessing-Module (MPM), die je nach Plattform unterschiedliche Lösungen für die gleichzeitige Bedienung mehrerer Client-Anfragen anbieten: Beispielsweise setzt das MPM prefork für klassische Unix-Systeme auf Forking von Prozessen, während mpm_winnt für die unter Windows empfehlenswerteren Threads optimiert ist.
Der Apache-Webserver ist modular aufgebaut: Durch entsprechende Module kann er beispielsweise die Kommunikation zwischen Browser und Webserver verschlüsseln (mod_ssl), als Proxyserver eingesetzt werden (mod_proxy) oder komplexe Manipulationen von HTTP-Kopfdaten (mod headers) und URLs (mod rewrite) durchführen.
Der Apache bietet die Möglichkeit, mittels serverseitiger Skriptsprachen Webseiten dynamisch zu erstellen. Häufig verwendete Skriptsprachen sind PHP, Perl oder Ruby. Weitere Sprachen sind Python, JavaScript (z. B. V8CGI), Lua, Tcl und .NET (mit ASP.NET oder Mono). Diese sind kein Bestandteil des Webservers, sondern müssen ebenfalls entweder als Module eingebunden werden oder über das CGI angesprochen werden, da Apache im Gegensatz zu beispielsweise nginx modulbasiert ist. Die Module können jederzeit aktiviert oder deaktiviert werden. Über das bei der Apache-Installation enthaltene mod_include kann Server Side Includes (SSI) ausgeführt werden. Damit ist es möglich, einfache dynamische Webseiten zu erstellen und den Verwaltungsaufwand von statischen Webseiten zu minimieren.
Der Apache HTTP Server ist, wie alle Programme der Apache Software Foundation, eine freie Software. Derzeit wird noch die stabile Version 2.4.x unterstützt und somit beispielsweise mit Sicherheitsupdates versorgt. Die Apache-Entwickler empfehlen die Version 2.4.x für den Produktiveinsatz.[13]
Dokumentation[Bearbeiten | Quelltext bearbeiten]
Zum Webserver gibt es ein Handbuch. Einige Distributionen (z. B. Ubuntu[14]) liefern es als eigenständiges Programmpaket (zum Package apache2 gibt es ein Package apache2-doc). Das Handbuch wird je nach Sprachkonfiguration des Webbrowsers, die er im Feld Accept-Language des HTTP übermittelt, in der passenden Sprache ausgeliefert sofern diese verfügbar ist.
Distributionen[Bearbeiten | Quelltext bearbeiten]
Der Apache HTTP Server ist in fast allen Linux-Distributionen und in macOS standardmäßig enthalten. Eine beliebte Entwicklungs-Distribution für Windows, Linux und Mac OS X ist XAMPP.
Wichtige Versionen[Bearbeiten | Quelltext bearbeiten]
- Apache 1.x: Diese Version wurde erstmals im Jahre 1995 veröffentlicht. Die Weiterentwicklung des letzten Entwicklungszweiges 1.3.x lief im Februar 2010 aus. Seitdem wurde Version 1 nur noch, falls erforderlich, mit Sicherheitsupdates versorgt. Inzwischen ist auch die Versorgung mit Sicherheitsupdates eingestellt.
- Apache 2.x: Diese Version wurde erstmals im März 2000 veröffentlicht. Von dieser Version wird nur noch der Entwicklungszweig 2.4 mit Sicherheitsupdates und Weiterentwicklungen versorgt.
Versionsübersicht[Bearbeiten | Quelltext bearbeiten]
| Legende: | Ältere Version; nicht mehr unterstützt | Ältere Version; noch unterstützt | Aktuelle Version | Aktuelle Vorabversion | Zukünftige Version |
|---|
Apache 1[Bearbeiten | Quelltext bearbeiten]
Apache 1.0[Bearbeiten | Quelltext bearbeiten]
| Version | AusklappenVeröffentlichung[15] |
|---|
Apache 1.3[Bearbeiten | Quelltext bearbeiten]
| Version | AusklappenVeröffentlichung |
|---|
Apache 2[Bearbeiten | Quelltext bearbeiten]
Apache 2.0[Bearbeiten | Quelltext bearbeiten]
| Version | AusklappenVeröffentlichung |
|---|
Apache 2.2[Bearbeiten | Quelltext bearbeiten]
| Version | AusklappenVeröffentlichung |
|---|
Apache 2.3[Bearbeiten | Quelltext bearbeiten]
| Version | AusklappenVeröffentlichung |
|---|
Apache 2.4[Bearbeiten | Quelltext bearbeiten]
| Version | AusklappenVeröffentlichung |
|---|
Module[Bearbeiten | Quelltext bearbeiten]
Der Apache-Server kann mit sogenannten Modulen erweitert werden, die bestimmte Zusatzfunktionen mitbringen und immer mit 'mod_' beginnen (z. B. mod_rewrite, mod_php7.0, mod_ssl). Es gibt Module u. a. für[16]
- SSL (mod_ssl für OpenSSL, mod_gnutls für GnuTLS)
- Einbindung und Verwendung von dynamischen Skriptsprachen (u. a. mod_php, mod_perl, mod_python)
- Unterstützung von zusätzlichen Protokollen (WebDAV: mod_dav, mod_dav_fs, mod_dav_lock, mod_dav_repos)
- Authentifizierung (mod_auth*)
- Weiterleitung an andere Server (mod_proxy)
- Umschreiben und Weiterleitung von Anfragen (mod rewrite; letzteres mit Hilfe von mod_proxy)
- Änderungen an Headerzeilen (mod_header)
- Automatische Informationen über Dateitypen (mod_mime, mod_mime_magic)
- Automatische Erzeugung von Statusberichten (mod_status)
| Modul | Funktion |
|---|---|
| mod_access_compat | Gruppenzugriffsberechtigung basierend auf dem Hostnamen |
| mod_actions | Führt CGI-Skript abhängig vom MIME-Typ des angefragten Inhalts aus |
| mod_alias | URL-Umleitung |
| mod_allowmethods | Verbietet einzelne HTTP-Methoden (GET, HEAD, POST, PUT, DELETE, TRACE) |
| mod_asis | Sendet Datei ohne neue HTTP-Header zu setzen |
| mod_auth_basic | HTTP-Authentifizierung |
| mod_auth_digest | Authentifizierung mit MD5-Hash |
| mod_auth_form | Formular-Authentifizierung |
| mod_authn_anon | Erlaubt anonymen Zugriff in authentifizierten Bereichen |
| mod_authn_core | Kernmodul für die Authentifizierung |
| mod_authn_dbd | Benutzer-Authentifizierung über eine SQL-Datenbank |
| mod_authn_dbm | Benutzer-Authentifizierung über eine DBM-Datei |
| mod_authn_file | Benutzer-Authentifizierung über Textdateien |
| mod_authn_socache | Verwaltet einen Cache aus Zugangsberechtigungen |
| mod_authnz_fcgi | Allows a FastCGI authorizer application to handle Apache httpd authentication and authorization |
| mod_authnz_ldap | Benutzer-Authentifizierung über LDAP |
| mod_authz_core | Kernmodul für Authentifizierungsmechanismen |
| mod_authz_dbd | Gruppen-Authentifizierung über SQL |
| mod_authz_dbm | Gruppen-Authentifizierung über DBM |
| mod_authz_groupfile | Gruppen-Authentifizierung über Textdateien |
| mod_authz_host | Gruppen-Authentifizierung basierend auf dem Hostnamen |
| mod_authz_owner | Authentifizierung über Besitzerzugehörigkeit von Dateien |
| mod_authz_user | Benutzer-Authentifizierung |
| mod_autoindex | Automatische Verzeichnisanzeige |
| mod_buffer | Anfragen-Pufferung |
| mod_cache | HTTP-Caching-Filter nach RFC 2616 |
| mod_cache_disk | Festplattenspeicherung für HTTP Caching-Filter |
| mod_cache_socache | Shared object cache (socache)-basierte Speicherung für den HTTP Caching-Filter |
| mod_cern_meta | CERN Metadaten-Semantik |
| mod_cgi | Ausführung von CGI-Skripten |
| mod_cgid | Ausführung von CGI-Skripten über externen daemon |
| mod_charset_lite | Legt andere Zeichenkodierung fest |
| mod_data | Data-URL nach RFC 2397 |
| mod_dav | WebDAV |
| mod_dav_fs | Dateisystem-Modul für WebDAV |
| mod_dav_lock | Locking-Modul für WebDAV |
| mod_dbd | Verwaltet SQL-Verbindungen |
| mod deflate | Komprimiert Inhalt vor der Auslieferung mit Deflate |
| mod_dialup | Dialup |
| mod_dir | Ordner-Verzeichnisanzeige |
| mod_dumpio | Dumps all I/O to error log as desired |
| mod_echo | Echo-Server für Testzwecke |
| mod_env | Ändert die Umgebung |
| mod_example_hooks | Beispielmodul |
| mod_expires | Erzeugt die Expires und Cache-Control HTTP-Header |
| mod_ext_filter | Gibt die Server-Antwort vor dem Ausliefern an externes Programm weiter |
| mod_file_cache | Puffert Dateien im Arbeitsspeicher |
| mod_filter | Kontextsensitive Filter |
| mod_headers | Anpassung der HTTP-Header |
| mod_heartbeat | Sendet Serverstatus an Proxyserver |
| mod_heartmonitor | Monitor für mod_heartbeat Server |
| mod_ident | RFC 1413 ident lookups |
| mod_imagemap | Imagemaps |
| mod_include | Serverseitiges Einbinden von HTMl-Dokumenten (Server Side Includes) |
| mod_info | Serverinformationen |
| mod_isapi | ISAPI (Apache for Windows) |
| mod_lbmethod_bybusyness | Für mod_proxy_balancer |
| mod_lbmethod_byrequests | Für mod_proxy_balancer |
| mod_lbmethod_bytraffic | Für mod_proxy_balancer |
| mod_lbmethod_heartbeat | Für mod_proxy_balancer |
| mod_ldap | LDAP |
| mod_log_config | Logging der Anfragen |
| mod_log_debug | Debug Log |
| mod_log_forensic | Forensisches Logging |
| mod_logio | Logging der input/output bytes |
| mod_lua | Lua-Hooks |
| mod_macro | Makro-Unterstützung für die Konfigurationsdateien |
| mod_mime | MIME |
| mod_mime_magic | Feststellung der MIME per Magic Byte |
| mod_negotiation | Content Negotiation |
| mod_nw_ssl | SSL-Verschlüsselung für NetWare |
| mod_php | Ausführung von PHP-Skripten |
| mod_privileges | Solaris Privileges |
| mod proxy | Proxy |
| mod_proxy_ajp | AJP für mod_proxy |
| mod_proxy_balancer | Lastverteilung für mod_proxy |
| mod_proxy_connect | Unterstützung von CONNECT-Anfragen für mod_proxy |
| mod_proxy_express | Dynamische Reverse-Proxy-Unterstützung für mod_proxy |
| mod_proxy_fcgi | FastCGI-Unterstützung für mod_proxy |
| mod_proxy_fdpass | fdpass-Unterstützung für mod_proxy |
| mod_proxy_ftp | FTP-Unterstützung für mod_proxy |
| mod_proxy_html | Rewrite HTML links in to ensure they are addressable from Clients’ networks in a proxy context |
| mod_proxy_http | HTTP-Unterstützung für mod_proxy |
| mod_proxy_scgi | SCGI-Gateway-Unterstützung für mod_proxy |
| mod_proxy_wstunnel | WebSocket-Unterstützung für mod_proxy |
| mod_ratelimit | Bandbreitenbegrenzung |
| mod_reflector | Kann einen Ausgabefilter in einen HTTP-Dienst verwandeln |
| mod_remoteip | Ersetzt die Client-IP mit einer Useragent-IP |
| mod_reqtimeout | Legt Timeout fest |
| mod_request | Unterstützung für HTTP-Anfragen (Requests) |
| mod rewrite | Rewrite-Engine |
| mod_security | Sicherheitsmodul (Web Application Firewall) |
| mod_sed | Filtern mit sed |
| mod_session | Unterstützung für Sitzungen |
| mod_session_cookie | Sitzungen mit Cookies |
| mod_session_crypto | Sitzungsverschlüsselung |
| mod_session_dbd | DBD/SQL-basierte Sitzungen |
| mod_setenvif | Erlaubt das Setzen von Umgebungsvariablen je nach Anfrage |
| mod_slotmem_plain | Slot-based shared memory provider |
| mod_slotmem_shm | Slot-based shared memory provider |
| mod_so | Unterstützung für das Laden von Programmbibliotheken |
| mod_socache_dbm | DBM-basierter socache |
| mod_socache_dc | Distcache-basierter socache |
| mod_socache_memcache | Memcache-basierter socache |
| mod_socache_shmcb | shmcb-basierter socache |
| mod_speling | Modul zum Korrigieren von Rechtschreibfehlern bei der Eingabe |
| mod ssl | Kryptographie mittels SSL bzw. TLS |
| mod_status | Informationen über Serveraktivität und -leistung |
| mod_substitute | Ermöglicht Suchen & Ersetzen in der Serverantwort |
| mod_suexec | CGI-Skripte als anderer Benutzer ausführen (suEXEC) |
| mod_unique_id | Provides an environment variable with a unique identifier for each request |
| mod_unixd | Basic (required) security for Unix-family platforms. |
| mod_userdir | Benutzer-spezifische Verzeichnisse |
| mod_usertrack | Clickstream-Logging |
| mod_version | Versionsabhängie Konfiguration |
| mod_vhost_alias | Dynamische Konfiguration für Virtual Hosting |
| mod_watchdog | Periodisches Ausführen von Aufgaben |
| mod_xml2enc | Fremde Zeichensätze für libxml2-Filtermodule |
Siehe auch[Bearbeiten | Quelltext bearbeiten]
Weblinks[Bearbeiten | Quelltext bearbeiten]
- httpd.apache.org, Offizielle Website (englisch)
- Online-Handbuch, mehrsprachig
- Apache Webserver Sicherheitsstudie. (PDF, 634 kB) Bundesamt für Sicherheit in der Informationstechnik, November 2002, abgerufen am 29. Januar 2010.
- Linkkatalog zum Thema Apache bei curlie.org (ehemals DMOZ)
Einzelnachweise[Bearbeiten | Quelltext bearbeiten]
- ↑ www.apache.org. (abgerufen am 23. August 2016).
- ↑ downloads.apache.org.
- ↑ linuxdocs.org. (abgerufen am 23. August 2016).
- ↑ github.com. (abgerufen am 11. August 2017).
- ↑ The apache Open Source Project on Open Hub: Languages Page. In: Open Hub. (abgerufen am 26. September 2018).
- ↑ projects.apache.org. (abgerufen am 8. April 2020).
- ↑ httpd.apache.org. (abgerufen am 7. April 2016).
- ↑ www.apache.org. (abgerufen am 23. August 2016).
- ↑ Web Server Survey. Netcraft, Ltd., abgerufen am 13. April 2016.
- ↑ Why the name “Apache”? In: Apache Server Frequently Asked Questions. Apache Software Foundation, abgerufen am 3. November 2015 (englisch).
- ↑ Apache FAQ (experimental first posting). In: Google groups. Google Inc., 13. Mai 1997, abgerufen am 29. Januar 2010 (englisch).
- ↑ Upgrading to 2.4 from 2.2. Abgerufen am 14. Januar 2017.
- ↑ Apache HTTP Server 2.4.43 Released. In: Apache HTTP Server. Apache Software Foundation, 1. April 2020, abgerufen am 27. Mai 2020.
- ↑ https://packages.ubuntu.com/bionic/apache2-doc
- ↑ Apache Release History (englisch)
- ↑ Modul-Index – Apache HTTP Server. apache.org, abgerufen am 15. November 2014.
.svg.png)
