Apache HTTP Server

Ajalugu ja nimi

Apache serveri esimese versiooni loojaks oli Robert McCool, kes oli tihedalt seotud NCSA veebiserveri arendamisega. Kui McCool 1994. aasta keskel projektist lahkus, siis jäi HTTP arendus toppama ja mitmed parandused sellele ringlesid e-kirjade kaudu. Parandusi levitasid lisaks McCoolile Brian Behlendorf, Roy Fielding, Rob Hartill, David Robinson, Cliff Skolnick, Randy Terbush, Robert S. Thau, Andrew Wilson, Eric Hagberg, Frank Peters ja Nicolas Pioch, kes moodustasid algse "Apache grupi".
Nime kohta on mitmeid selgitusi. Apache Software Foundationi väitel valiti nimi austusest Ameerika indiaanlaste hõimu, apatšide vastu, kes olid tuntud vastupidavate ja osavate sõjameestena.
Samas väitis algne KKK Apache kodulehel aastatel 1996–2001, et NCSA serveri parandustega kombineerimise tulemus oli "lapitud server" (inglise a patchy server).
Esimest selgitust kinnitas Brian Behlendorf 2000. aastal ühel Apache konverentsil. Tema sõnul oli nimi vihjeks, et "Vange mitte võtta. Olge natuke agressiivsed ja andke tappa". Behlendorf läks oma sõnadega vastuollu, öeldes 2007. aastal ühes intervjuus, et "Apache server ei ole nimetatud Geronimo hõimu auks", vaid kuna saadeti nii palju parandusi, "kutsus grupp seda lapitud veebiserveriks". Mõlemad selgitused on tõenäoliselt sobivad, kuigi sõnamängul põhinevat selgitust ei soosita.
Apache serveri teise versiooni lähtekood on võrreldes Apache 1.x-ga oluliselt ümber kirjutatud. Uue koodi kirjutamisel peeti silmas modulaarsuse suurendamist ja portatiivsuse arendamist (Apache Portable Runtime). Apache 2.x tuumal on olulisi eeliseid Apache 1.x-i ees: UNIXi hargtöötlus, parem tugi mitte-UNIXi platvormidele (näiteks Microsoft Windows), uus Apache rakendusliides ja IPv6 tugi. Esimene Apache 2 alfaväljalase oli 2000. aasta märtsis, esimene stabiilne versioon muutus kättesaadavaks 6. aprillil 2002.
Versioon 2.2 tõi endaga kaasa veel paindlikuma autoriseerimise rakendusliidese. Parandatud on ka proksi ja puhvri mooduleid.

Omadused

Apache toetab mitmeid võimalusi, millest paljud on teostatud tuuma funktsioone laiendavate kompileeritud moodulitena. Võimalused varieeruvad serveri välisete programmeerimiskeelte toest kuni erinevate autentimisskeemide toeni. Levinumad toetatud keeled on Perl, Python, Tcl ja PHP. Populaarsed autentmismoodulid on mod_access, mod_auth, mod_digest ja viimase järglane mod_auth_digest. Samuti on toetatud DBMS-i põhine autentimise andmebaas. Muude omaduste hulgas on SSL-i ja TLS-i tugi (mod_ssl), proksi tugi (mod_proxy), URL-i ümberkirjutamise tugi (mod_rewrite), seadistatavate logifailide tugi (mod_log_config) ja filtreerimise tugi (mod_include ja mod_ext_filter). Veateateid on võimalik seadistada ja Apache serverit toetavad mitmed graafilised kasutajaliidesed (GUI).
Virtuaalhostimine võimaldab ühel Apache serveril teenindada mitut veebilehte.

Kasutamine

Apachet kasutatakse peamiselt staatiliste ja dünaamiliste veebilehtede serveerimiseks veebis. Mitmed veebirakendused eeldavad Apache poolt pakutava keskkonna ja funktsioonide olemasolu.
Apachet levitatakse osana mitmest firmaomasest tarkvarast. Näiteks kuulub Apache Oracle Andmebaasi ja IBM WebSphere rakenduste serveri juurde. Apache on integreeritud Mac OS X-i sisseehitatud veebiserverina ja selle WebObjects rakenduste serveri toetamiseks. Mõnevõrra toetavad seda ka Borlandi arendustööriistad Kylix ja Delphi. Apache on osa mitmetest Linuxi distributsioonidest ja on Novell Netware 6.5 vaikeveebiserver.
Apachet kasutatakse andmede ohutuks ja usaldusväärseks jagamiseks, näiteks failide jagamiseks oma personaalarvutist üle interneti. Apache serveri oma arvutisse paigaldanud kasutaja saab jagada Apache juurkaustas asuvaid dokumente.
Programmeerijad kasutavad tihti Apache serverit veebirakenduste testimiseks kohalikus võrgus.
Apache peamised konkurendid on Microsofti Internet Information Services (IIS), Sun Microsystemsi Sun Java System Web Server ja Zeus Web Server.

Jõudlus

Apache arendamisel peetakse silmas tasakaalu paindlikuse, porditavuse ja jõudluse vahel. Seetõttu pole Apache loodud kõige kiiremaks serveriks, kuid on võrreldav suurele jõudlusele orienteeritud serveritega. Apache server ei ole orienteeritud ühe ülesande täitmiseks, vaid võimaldab moodulite abil iga konkreetset serverit vastavalt vajadusele konfigureerida.

Litsents

Tarkvaralitsents, mille alusel Apache Software Foundationi tarkvara levitatakse, on tähtis osa Apache serveri ajaloost ja tänapäevast avatud lähtekoodiga tarkvara kogukonnas. Apache litsents võimaldab nii avatud kui ka suletud lähtekoodiga versioonide tarkvara levitamist.
Vaba Tarkvara Fond ei loe Apache Litsentsi ühilduvaks GPL litsentsi teise versiooniga, mis tähendab, et Apache litsentsi alusel levitatavat tarkvara ei tohi integreerida GPL litsentsi alusel levitatavasse tarkvarasse.
GPL litsentsi kolmas versioon sisaldab sätet (lõik 7e), mis lubab ühilduvust litsentsidega, mis sisaldavad patentidega piiratud klausleid, nende hulgas ka Apache litsents.
Nimi Apache on registreeritud kaubamärk ja seda võib kasutada ainult valdaja loal.