Apache HTTP Server
Entwickelt von | Apache Software Foundation |
---|---|
Erste Version | 1995 |
Letzte Version | 2.4.46 (5. August 2020) |
Erweiterte Version | 2.5.0-alpha (8. November 2017) |
Anzahlung | svn.apache.org/repos/asf/httpd/httpd |
Geschrieben in | VS |
Betriebssystem | Multiplattform |
Sprachen | Englisch |
Art | Webserver |
Lizenz | Apache-Lizenz Version 2.0 |
Webseite | httpd.apache.org |
Die kostenlose Software Apache HTTP Server ( Apache ) ist ein HTTP-Server , der in der Apache Foundation erstellt und verwaltet wird . Bis April 2019 war es der beliebteste HTTP-Server im World Wide Web . Es wird unter den Bedingungen der Apache-Lizenz vertrieben .
Apache erschien in April 1995. Am Anfang war dies eine Sammlung von Korrekturen und Ergänzungen zum NCSA HTTPd 1.2- Server , der gemeinfrei und der damals beliebteste HTTP-Server war. Aus diesem Grund behaupten viele Leute, dass der Name Apache von einem Patch-Server oder "einem Patch-Server" stammt. Anschließend wurde Apache vollständig neu geschrieben, sodass in Version 2 keine Spur von NCSA HTTPd vorhanden ist.
Anfangs war Apache die einzige seriöse und kostenlose Alternative zum HTTP-Server von Netscape ( iPlanet , jetzt Sun ONE ). Schon seitApril 1996Laut der laufenden Studie von Netcraft ist Apache der beliebteste HTTP-Server im Internet .
Apache Marktanteil:
Apache Version 2 bietet gegenüber Version 1 einige wichtige Verbesserungen, darunter die Unterstützung mehrerer Plattformen ( unter anderem Windows , Linux und UNIX ), die Unterstützung von UNIX- Thin-Prozessen , eine neue API und die Unterstützung von IPv6 .
Die Apache Foundation ( Apache Software Foundation oder ASF ) wurde 1999 aus der Apache-Gruppe ( Apache Group ) erstellt, die den Server 1995 erstellt hat . Seitdem wurden neben dem HTTP-Server viele andere für das World Wide Web nützliche Software entwickelt.
Apache funktioniert hauptsächlich unter den Betriebssystemen UNIX ( Linux , Mac OS X , Solaris , BSD und UNIX ) und Windows . Die Windows-Version gilt erst seit Apache Version 1.2 als stabil. Apache wird von vielen Produkten verwendet, einschließlich WebSphere von IBM sowie der Oracle Corporation .
Apache unterstützt viele Module und bietet zusätzliche Funktionen: Interpretation von Perl , PHP , Python und Ruby , Proxyserver , Common Gateway-Schnittstelle , Server Side Includes , URL- Umschreibung , Inhaltsverhandlung, zusätzliche Kommunikationsprotokolle usw. Es ist jedoch zu beachten, dass das Vorhandensein vieler Apache-Module die Konfiguration des Webservers erschwert. In der Tat wird empfohlen, nur nützliche Module zu laden: Viele Sicherheitslücken, die nur Apache-Module betreffen, werden regelmäßig entdeckt.
Die Konfigurationsmöglichkeiten von Apache sind ein Flaggschiff. Das Prinzip basiert auf einer Hierarchie von Konfigurationsdateien, die unabhängig verwaltet werden können. Diese Funktion ist besonders nützlich für Hosts , die die Standorte mehrerer Kunden über einen einzigen HTTP-Server bedienen können . Für Kunden wird diese Funktionalität durch die .htaccess- Datei sichtbar gemacht .
Unter den Tools, die bei der Wartung von Apache helfen, können die Protokolldateien mit vielen Skripten und kostenloser Software wie AWStats , Webalizer oder W3Perl analysiert werden . Mehrere grafische Oberflächen erleichtern die Konfiguration des Servers.
Diese beiden Hauptbetriebsarten verändern insbesondere die Leistung des HTTP-Servers.
In der Vergangenheit arbeitet Apache in Prefork. Dies bedeutet, dass ein übergeordneter Prozess, der mit erweiterten Rechten ( Root ) gestartet wurde, untergeordnete Prozesse startet, die jeweils eine bestimmte Anzahl von Clientanforderungen verarbeiten. Unter Linux führt die Multiplikation von Prozessen jedoch zu einem Anstieg des Ressourcenverbrauchs (Speicher, Dateideskriptoren).
Im Worker- Modus startet Apache Threads , die eingehende Anforderungen verarbeiten. Der Unterschied besteht darin, dass dies ein präventiverer Modus ist, in dem der übergeordnete Prozess die Ressourcen für seine Threads vorbereitet. Von Dritten entwickelte Module oder von diesen Modulen verwendete Bibliotheken sind möglicherweise nicht für die Verwendung in einer Multithread-Umgebung ausgelegt. In diesem Fall können sie zu Fehlfunktionen führen, wenn sie im Worker- Modus verwendet werden .
Seit Version 2.4 ist das Ereignismodul in der Produktion verfügbar. Dies wird vom Worker- Modus abgeleitet , mit der Ausnahme, dass Threads nicht nur eine Client-Verbindung bedienen, sondern unabhängig von der Verbindung mehrere Aufgaben ausführen können. Somit werden die Begriffe von KeepAlivebesser in dem Sinne verwaltet, dass ein Thread nicht mehr darauf wartet, dass die Verbindung beendet wird, um einem anderen zu dienen. Genauer gesagt dient der Thread einer Anfrage und nicht einer Verbindung.
Module: prefork.c, worker.c, event.c
Unter anderem über mod_proxy ist es möglich, Httpd Server als echten Proxy zu verwenden .
Eine der interessantesten Anwendungen ist der Lastausgleich , entweder im Zusammenhang mit hoher Verfügbarkeit oder um eine bessere Leistung zu erzielen. Die Fähigkeiten von Reverse Proxying sind ausreichend entwickelt, um ab Version 2.1 reibungslos in die Produktion zu gelangen.
Module: mod_proxy, mod_proxy_balancer, mod_proxy_http, mod_proxy_ajp, mod_proxy_connect