Apache HTTP Server

Apache HTTP Server
Apache HTTP server logo (2019-present).svg
Originalautor (en) Robert McCool
Entwickler (en) Apache Software Foundation
Erstveröffentlichung 1995; Vor 27 Jahren[1]
Stabile Version
2.4.54[2] Edit this on Wikidata / 8. Juni 2022
Repository
Geschrieben in C,[3] Xml[4]
Betriebssystem Unix-artig, Microsoft Windows,[5] OpenVMS
Typ Webserver
Lizenz Apache-2.0
Webseite httpd.Apache.org Edit this at Wikidata

Das Apache HTTP Server (/əˈpæi/ ə-Patch-eee) ist frei und Open Source plattformübergreifend Webserver Software, veröffentlicht unter den Bedingungen von Apache -Lizenz 2.0. Apache wird von einer offenen Gemeinschaft von Entwicklern unter der Schirmherrschaft des Apache Software Foundation.

Die überwiegende Mehrheit der Apache -HTTP -Serverinstanzen, die auf einem ausgeführt werden Linux -Verteilung,[6] Aber aktuelle Versionen laufen auch weiter Microsoft Windows,[7] OpenVMS,[8] und eine Vielzahl von Unix-artig Systeme. Frühere Versionen lief auch weiter Netware, OS/2 und andere Betriebssysteme,[9] einschließlich Ports zu Mainframes.[10]

Ursprünglich basierend auf der NCSA HTTPD Der Server, die Entwicklung von Apache begann Anfang 1995, nachdem die Arbeiten am NCSA -Code zum Stillstand gebracht wurden. Apache spielte eine Schlüsselrolle beim anfänglichen Wachstum der Weltweites Netz,[11] NCSA HTTPD schnell als Dominant überholen Http Server. Im Jahr 2009 war es die erste Webserver -Software, die mehr als 100 Millionen bediente Websites.[12]

Ab März 2022, Netcraft Schätzungen zufolge diente Apache 23,04% der millionenfach geschäftigsten Websites Nginx diente 22,01%. Cloudflare bei 19,53% und Microsoft Internetinformationsdienste Mit 5,78% rundete sich die Top 4 ab. Für einige der anderen Statistiken von Netcraft ist Nginx Apache voraus.[13] Laut W3Techs wurde die Überprüfung aller Websites im Juni 2022 mit 31,4%und Nginx zuerst mit 33,6%auf Platz 1 mit einem CloudFlare -Server bei 21,6%belegt.[14]

Name

Entsprechend Die Apache Software Foundationsein Name wurde "aus Respekt vor den verschiedenen ausgewählt Amerikanischer Ureinwohner Nationen kollektiv als als bezeichnet Apache, bekannt für ihre überlegenen Fähigkeiten in der Kriegsführungstrategie und ihre unerschöpfliche Ausdauer ","[15] In einem Kontext, in dem es schien, dass das Open -Internet auf der Grundlage des freien Austauschs von Open Source -Code basierte Microsoft, Behlendorf sieht seine Bemühungen etwas romantisch, um der von zu parallelen Geronimo, Chef der letzten der freien Apache -Völker.[16][17] Aber es räumte ein, dass der Name "auch einen niedlichen macht Wortspiel auf 'a fleckig Webserver' - ein Server aus einer Reihe von einer Reihe von Patches".

Es gibt andere Quellen für die "Patchy" -Software -Pun -Theorie, einschließlich der offiziellen Dokumentation des Projekts im Jahr 1995, in der festgestellt wurde: "Apache ist ein niedlicher Name, der auf einem vorhandenen Code und einer Reihe von Software -Patches basiert, ein Wortspiel auf 'Ein Patchy' Server. "[18][19]

Aber in einem Interview im April 2000,, Brian Behlendorf, einer der Schöpfer des Apache, behauptete, dass die Ursprünge von Apache kein Wortspiel seien, in dem sie erklärten:[20]

Der Name kam buchstäblich aus heiterem Himmel. Ich wünschte, ich könnte sagen, dass es etwas Fantastisches war, aber es war aus heiterem Himmel. Ich habe es auf eine Seite gestellt und dann ein paar Monate später, als dieses Projekt begann, zeigte ich die Leute auf diese Seite und sagte: "Hey, was denkst du über diese Idee?" ... Jemand sagte, dass er den Namen mochte und dass es ein wirklich gutes Wortspiel war. Und ich sagte: "Ein Wortspiel? Was meinst du?" Er sagte: "Nun, wir bauen a Server Aus einer Reihe von Software -Patches, oder? Es ist also ein fleckiger Webserver. "Ich ging:" Oh, alles in Ordnung. "... als ich an den Namen dachte, nein. Es hat nur eine Art Zeugnis:" Nimm keine Gefangenen. Sei irgendwie aggressiv und tritt etwas in den Arsch. "

Wenn Apache unter läuft Unix, sein Prozessname ist httpd, was kurz für "http ist Dämon".[21]

Funktionsübersicht

Apache unterstützt eine Vielzahl von Funktionen, viele implementiert als zusammengestellt Module die die Kernfunktionalität erweitern. Diese können von reichen von Authentifizierung Programme zur Unterstützung Server-Seite Programmiersprachen wie z. Perl, Python, Tcl und Php. Zu den beliebten Authentifizierungsmodulen gehören mod_access, mod_auth, mod_digest und mod_auth_digest, der Nachfolger von mod_Digest. Eine Stichprobe anderer Funktionen umfasst Sichern Sie die Steckdose und Transportschichtsicherheit Unterstützung (mod_ssl), a Proxy Modul (mod_proxy), a URL -Umschreiben Modul (mod_rewrite), benutzerdefinierte Protokolldateien (mod_log_config) und filtering support (mod_include und mod_ext_filter).

Zu den beliebten Komprimierungsmethoden auf Apache gehören das externe Erweiterungsmodul mod_gzip, die zur Reduzierung der Größe (Gewicht) der überdienlichen Webseiten implementiert werden Http. Modsecurity ist eine Open -Source -Intrusion -Erkennung und Präventionsmaschine für Webanwendungen. Apache -Protokolle können über einen Webbrowser mit kostenlosen Skripten analysiert werden, wie z. Awstats/W3perl oder Besucher.

Virtuelles Hosting Ermöglicht eine Apache -Installation, viele verschiedene zu bedienen Websites. Beispielsweise kann ein Computer mit einer Apache -Installation gleichzeitig dienen Beispiel.com, Beispiel.org, test47.test-server.example.edu, etc.

Apache -Funktionen konfigurierbare Fehlermeldungen, DBMs-basierte Authentifizierungsdatenbanken, Inhaltsverhandlung und unterstützt mehrere Grafische Benutzeroberflächen (GUIS).

Es unterstützt die Passwortauthentifizierung und digitales Zertifikat Authentifizierung. Da der Quellcode frei verfügbar ist, kann jeder den Server für bestimmte Anforderungen anpassen, und es gibt eine große öffentliche Bibliothek von Apache-Add-Ons.[22]

Eine detailliertere Liste von Funktionen finden Sie unten:

Leistung

Anstatt eine einzelne Architektur zu implementieren, bietet Apache eine Vielzahl von Multiprocessing -Modulen (MPMS), die es ihm ermöglichen, in entweder a zu laufen Prozess-basierter Modus, ein Hybrid (Prozess und Faden) Modus oder ein Ereignishybridmodus, um den Anforderungen der einzelnen Infrastruktur besser zu entsprechen. Die Auswahl von MPM und Konfiguration ist daher wichtig. Wenn Kompromisse bei der Leistung erstellt werden müssen, soll Apache reduziert werden Latenz und erhöhen Durchsatz im Vergleich zum einfachen Umgang mit mehr Anfragen und somit eine konsequente und zuverlässige Verarbeitung von Anforderungen innerhalb angemessener Zeitrahmen.[Klarstellung erforderlich]

Für die Bereitstellung statischer Seiten wurde die Apache 2.2 -Serie als deutlich langsamer angesehen als nginx und Lack.[39] Um dieses Problem anzugehen, haben die Apache -Entwickler das Ereignis -MPM erstellt, das die Verwendung mehrerer Prozesse und mehrere Themen pro Prozess in einem vereint asynchron Ereignisbasierte Schleife.[40][Klarstellung erforderlich] Diese in der Apache 2.4-Serie implementierte Architektur führt mindestens genauso gut wie ereignisbasierte Webserver aus, sodass lautet Jim Jagielski und andere unabhängige Quellen.[41][42][43] Einige unabhängige, aber signifikant veraltete Benchmarks zeigen jedoch, dass es immer noch halb so schnell ist wie Nginx, z.[44]

Lizenzierung

Der Apache HTTP -Server Codebasis war Relizenz zum Apache 2.0 Lizenz (aus der vorherigen 1.1 -Lizenz) im Januar 2004,[45] und Apache HTTP Server 1.3.31 und 2.0.49 waren die ersten Veröffentlichungen mit der neuen Lizenz.[46]

Das OpenBSD Das Projekt mochte die Änderung nicht und setzte die Verwendung von Apache-Versionen vor 2.0 effektiv fort Gabel Apache 1.3.x für seine Zwecke.[47][48][49] Sie ersetzten es zunächst durch durch Nginxund bald danach ihren eigenen Ersatz, OpenBSD HTTPD, basierend auf dem Relayd -Projekt.[50][51][52][53]

Versionen

Version 1.1: Die Apache -Lizenz 1.1 wurde von der ASF im Jahr 2000 genehmigt: Die primäre Änderung gegenüber der 1.0 -Lizenz ist in der "Werbeklausel" (Abschnitt 3 der 1.0 -Lizenz); Abgeleitete Produkte sind nicht mehr erforderlich, um Zuordnung in ihre Werbematerialien aufzunehmen, nur in ihrer Dokumentation.

Version 2.0: Die ASF hat im Januar 2004 die Apache-Lizenz 2.0 verabschiedet. Zu den angegebenen Zielen der Lizenz gehörten die Lizenz für Nicht-ASF-Projekte, die Kompatibilität mit GPL-basierter Software zu verbessern und die Lizenz stattdessen durch Referenz einbezogen werden zu können. In jeder Datei aufgeführt, die Lizenz für Beiträge klären und eine Patentlizenz für Beiträge erfordert, die notwendigerweise die eigenen Patente eines Mitwirkenden verletzen.

Entwicklung

Versionen von Apache HTTP Server
Ausführung Erstveröffentlichung Neueste Erscheinung
Alte Version, nicht mehr gepflegt: 1.3 1998-06-06[54] 2010-02-03 (1.3.42)[55]
Alte Version, nicht mehr gepflegt: 2.0 2002-04-06[56] 2013-07-10 (2.0.65)[57]
Alte Version, nicht mehr gepflegt: 2.2 2005-12-01[58] 2017-07-11 (2.2.34)[59]
Aktuelle stabile Version: 2.4 2012-02-21[60] 2022-03-14 (2.4,53)[61]
Legende:
Alte Version
Ältere Version, noch gepflegt
Letzte Version
Neueste Vorschau -Version
Zukünftige Veröffentlichung

Das Apache HTTP Server-Projekt ist eine kollaborative Softwareentwicklungsbemühungen, die darauf abzielt, eine robuste, kommerzielle, featurereiche und frei verfügbare Quellcode-Implementierung eines HTTP-Servers (Web) zu erstellen. Das Projekt wird gemeinsam von einer Gruppe von Freiwilligen verwaltet, die sich auf der ganzen Welt befinden, und nutzt das Internet und das Web, um den Server und seine damit verbundenen Dokumentation zu kommunizieren, zu planen und zu entwickeln. Dieses Projekt ist Teil der Apache Software Foundation. Darüber hinaus haben Hunderte von Benutzern Ideen, Code und Dokumentation zum Projekt beigetragen.[62][63][64]

Apache 2.4 ließ die Unterstützung für die Unterstützung Beos, TPF, A/UX, Nächste, und Tandem Plattformen.[9]

Sicherheit

Apache kann wie andere Serversoftware gehackt und ausgenutzt werden. Das Haupt -Apache -Angriffs -Tool ist Slowloris, was einen Fehler in der Apache -Software ausnutzt.[65] Es schafft viele Sockets und hält jede von ihnen am Leben und beschäftigt, indem mehrere Bytes (bekannt als "Keep-Alive Header") gesendet werden, um den Server mitzuteilen, dass der Computer noch verbunden ist und keine Netzwerkprobleme aufweist. Die Apache -Entwickler haben Slowloris mit mehreren Modulen angesprochen, um den verursachten Schaden zu begrenzen. Die Apache modules mod_limitipconn, mod_qos, mod_evasive, MOD -Sicherheit, mod_noloris und mod_antiloris wurden als Mittel zur Reduzierung der Wahrscheinlichkeit eines erfolgreichen Slowloris -Angriffs vorgeschlagen.[66][67] Seit Apache 2.2.15 versendet Apache das Modul mod_reqTimeout als offizielle Lösung, die von den Entwicklern unterstützt wird.[68]

Siehe auch

Verweise

  1. ^ "Über das Apache HTTP Server -Projekt". Apache Software Foundation. Archiviert Aus dem Original am 7. Juni 2008. Abgerufen 2008-06-25.
  2. ^ https://downloads.apache.org/httpd/Announement2.4.html.
  3. ^ "Archivierte Kopie". Archiviert von das Original am 2016-03-02. Abgerufen 2016-02-27.{{}}: CS1 Wartung: Archiviertes Kopie als Titel (Link)
  4. ^ "Sprachen". Apache HTTP Server. Black Enten -Software. Ohloh. Archiviert von das Original am 7. April 2014. Abgerufen 2. April 2014.
  5. ^ "Kompilieren und Installieren". httpd.apache.org. Die Apache Software Foundation. Abgerufen 9. Mai 2016.
  6. ^ "OS/Linux -Verteilungen mit Apache". Secure1.SecuritySpace.com. Abgerufen 2018-09-17.
  7. ^ "Plattformspezifische Notizen - Apache HTTP Server Version 2.4". httpd.apache.org. Abgerufen 2019-01-21.
  8. ^ "Secure Web Server". vmssoftware.com. Abgerufen 2020-10-20.
  9. ^ a b "Upgrade auf 2,4 von 2,2". Die Plattformunterstützung wurde für Beos, TPF und sogar ältere Plattformen wie A/UX, Weiter und Tandem entfernt. Es wurde angenommen, dass diese sowieso gebrochen wurden.
  10. ^ "Der Apache EBCDIC -Port - Apache HTTP Server Version 2.4". httpd.apache.org. Abgerufen 2019-08-16.
  11. ^ NetCraft -Marktanteil Für Top -Server in allen Domains August 1995 - heute (monatlich aktualisiert)
  12. ^ "Februar 2009 Web Server Survey". Netcraft. Archiviert Aus dem Original am 26. Februar 2009. Abgerufen 2009-03-29.
  13. ^ "März 2022 Web Server Survey". Netcraft News. Abgerufen 2022-06-18.
  14. ^ "Nutzungsstatistik von Webservern". w3techs.com. Abgerufen 2022-06-18.
  15. ^ "Apache Foundation". www.apache.org. Abgerufen 22. August 2018.
  16. ^ ""Billionen und Billionen bedient" Dokumentarfilmfunktion in der Apache Software Foundation ". TheapacheFoundation / YouTube. 2020. Archiviert vom Original am 2021-11-22.
  17. ^ "Eine Stiftung des Vertrauens: Aufbau einer Blockchain -Zukunft: Brian Behlendorf". Lange jetzt Stiftung / YouTube. 2020-02-10. Archiviert vom Original am 2021-11-22.
  18. ^ "Informationen zum Apache HTTP Server -Projekt". 1997-04-15. Archiviert von das Original am 15. April 1997.
  19. ^ "Apache Server stellte häufig Fragen". Archiviert von das Original Am 1997-01-06. Abgerufen 15. Januar 2017.
  20. ^ McMillan, Robert (15. April 2000). "Apache Power". Linux Magazine. Archiviert von das Original am 28. Januar 2019.
  21. ^ "Apache Docs". httpd.apache.org. Abgerufen 22. August 2018.
  22. ^ "Apache -Webserver". webopedia.com.
  23. ^ "Apache HTTP Server Tutorial: .htaccess -Dateien". Apache.org.
  24. ^ "mod_proxy". Apache.org.
  25. ^ "mod_proxy_balancer". Apache.org.
  26. ^ "Balancer Manager". Apache.org.
  27. ^ "Authentifizierung und Autorisierung". Apache.org.
  28. ^ "mod_rewrite". Apache.org.
  29. ^ "mod_headerers". Apache.org.
  30. ^ "mod_seed". Apache.org.
  31. ^ "mod_substitute". Apache.org.
  32. ^ "Apache HTTPD -Tutorial: Einführung in die Serverseite inklusive". Apache.org.
  33. ^ "mod_usertrack". Apache.org.
  34. ^ "Apache Tutorial: Dynamischer Inhalt mit CGI". Apache.org.
  35. ^ "Per-User-Webverzeichnisse". Apache.org.
  36. ^ "Ausdrücke in Apache HTTP Server". Apache.org.
  37. ^ "mod_status". Apache.org.
  38. ^ "Apache Modul: mod_ftp". Apache.org.
  39. ^ "Servieren statische Dateien: Ein Vergleich zwischen Apache, Nginx, Lack und G-Wan". Spoot!.
  40. ^ "Worker - Apache HTTP Server Version 2.2". apache.org.
  41. ^ "Apache Httpd 2.4" (PDF).
  42. ^ "Auswahl eines Proxy -Servers".
  43. ^ "Durchsatzbewertung von Apache 2.4.1".
  44. ^ "Leistung von Apache 2.4 mit dem Ereignis -MPM im Vergleich zu Nginx". eschrade.com.
  45. ^ "Apache -Lizenz, Version 2.0". Die Apache Software Foundation. Januar 2004. Abgerufen 2013-05-21.
  46. ^ Burton, Richard Antony. "FYI: Apache HTTP Server 2.0.49 veröffentlicht". Newsgroup:Alt.apache.Configuration. Abgerufen 2018-02-16.
  47. ^ De Raadt, Theo (18. Februar 2004). "Die neue Apache -Lizenz". openbsd-misc (Mailingliste). Abgerufen 2013-05-21.
  48. ^ "Urheberrechtsrichtlinie". OpenBSD. Abgerufen 2013-05-12.
  49. ^ "Apache-httpd-openBSD-1.3.20140502p2-OpenBSD verbessert und gesichertes Version von Apache 1.3". OpenBSD -Ports. Abgerufen 2014-12-28.
  50. ^ Marvin, Rob (25. März 2015). "Inside OpenBSDs neuer HTTPD -Webserver". SD -Zeiten. Abgerufen 12. Oktober 2019.
  51. ^ "OpenBSD Upgrade Guide: 5.1 bis 5.2". openbsd.org.
  52. ^ JJ, ed. (2014-03-14). "Heads up: Apache von der Basis entfernt". OpenBSD Journal.
  53. ^ "OpenBSD Upgrade Guide: 5.5 bis 5.6". openbsd.org.
  54. ^ "Ankündigung: Apache 1.3.0 veröffentlicht!". 1998-06-06. Abgerufen 2015-01-06.
  55. ^ "Apache HTTP Server 1.3.42 veröffentlicht (endgültige Version von 1.3.x)". apache.org.
  56. ^ "Offizielle Veröffentlichung: Apache 2.0.35 ist jetzt GA". 2002-04-06. Abgerufen 2015-01-06.
  57. ^ "[Ankündigung] Apache HTTP Server 2.0.65 veröffentlicht". apache.org.
  58. ^ "Apache HTTP Server 2.2.0 veröffentlicht". 2005-12-01. Abgerufen 2015-01-06.
  59. ^ "[Ankündigen] Apache HTTP Server 2.2.34 veröffentlicht". apache.org.
  60. ^ "[Ankündigung] Apache HTTP Server 2.4.1 veröffentlicht". 2012-02-21. Abgerufen 2015-07-17.
  61. ^ "Apache HTTP Server 2.4.53 veröffentlicht". apache.org.
  62. ^ Dokumentationsgruppe. "Über das Apache HTTP Server -Projekt - das Apache HTTP Server -Projekt". apache.org.
  63. ^ "Das Apache HTTP Server Open Source -Projekt auf Ohloh. (N.d.). Ohloh, das Open Source -Netzwerk. Abgerufen am 12. November 2012".
  64. ^ "Kapitel 4. Der Apache HTTP -Server". fedoraproject.org.
  65. ^ Zdrnja, Bojan (21. Juni 2009). "Apache HTTP DOS -Tool -Minderung". Ohne Institut.
  66. ^ "Slowloris http dos". Archiviert vom Original am 26. April 2015. Abgerufen 26. Juni 2009.{{}}: CS1 Wartung: Bot: Original -URL -Status unbekannt (Link)
  67. ^ "mod_noloris: verteidigen gegen dos". Niqs Seifenkiste. Abgerufen 7. Januar 2012.
  68. ^ "mod_reqTimeout". Apache.org. Abgerufen 2013-07-03.

Externe Links