Apache HTTP Server

Apache HTTP Server je softwarový webový server s otevřeným kódem pro GNU/Linux, BSD, Solaris, macOS, Microsoft Windows a další platformy. V současné době dodává prohlížečům na celém světě asi čtvrtinu internetových stránek.

Historie 
Vývoj Apache začal v roce 1993 v NCSA (National Center for Supercomputing Aplications) na Illinoiské univerzitě. Původní jméno projektu bylo NCSA HTTPd. V dalším roce však vývojářský tým opustil hlavní programátor Rob McCool, tím došlo ke zpomalení vývoje a poté, v roce 1998, k úplnému zastavení.

NCSA HTTPd však mezitím už používali správci webových serverů a dodávali k němu vlastní úpravy – patche (patch = záplata). Hlavní úlohu v dalším vývoji sehráli Brian Behlendorf a Cliff Skolnick, kteří založili e-mailovou konferenci a začali sběr úprav a jejich distribuci koordinovat. První veřejná verze s označením 0.6.2 byla vydána v dubnu 1995. Následovalo kompletní přepsání kódu (Apache2 už neobsahuje nic z původního NCSA HTTPd) a založení Apache Group, která je dnes základem vývojářského týmu.

Od dubna 1996 byl Apache nejpopulárnější server na internetu. V květnu 1999 běžel na 57 % všech serverů a v listopadu 2005 jeho používanost dosáhla 69 %. Tržní podíl serveru Apache v ČR je 64,32%.

Název vznikl z úcty a obdivu k domorodému kmenu indiánů – Apačů anebo anglického slovního spojení „A patchy server“ (patchovaný server, kdysi byl Apache pouze sada patchů pro jiný web server). Jako indiánský symbol je ve znaku ptačí pero.

Funkce 
Apache podporuje velké množství funkcí, mnoho z nich je implementováno jako kompilované moduly rozšiřující jádro. Mohou to být funkce podpory programovacích jazyků na straně serveru nebo různá autentizační schémata. Příkladem podporovaných programovacích jazyků je Perl, Python, Tcl nebo PHP. Autentizační schémata jako například mod_access, mod_auth, mod_digest, a mod_auth_digest. Příkladem dalších funkcí je podpora SSL, TLS (mod_ssl), proxy modul (mod_proxy), URL rewriter známý jako rewrite engine z modulu mod_rewrite, konfigurace souborů logu (mod_log_config) a filtrace (mod_include a mod_ext_filter).

Apache dále obsahuje externí modul pro kompresi dat webových stránek posílaných protokolem HTTP (mod_gzip), open source modul pro ochranu a prevenci webových aplikací před napadením (mod_security). Logy z Apache mohou být analyzovány pomocí browseru a skriptů jako AWStats/W3Perl nebo Visitors. Nastavit se dají i formy chybových zpráv, DBMS autentizační databáze a nechybí ani podpora mnoha grafických prostředí (GUI).

Virtuální hosting je funkce dovolující jedné instalaci Apache na jednom fyzickém počítači obsluhovat více webových stránek.

Výkon 
Přestože hlavním cílem Apache není být „nejrychlejším“ webovým serverem, jeho výkon se může srovnávat s ostatními výkonnými webovými servery. Místo implementování jedné architektury, Apache poskytuje mnoho tzv. MultiProcessing modulů (MPM) což mu dovoluje přizpůsobit se potřebám systému na kterém běží. Z toho vyplývá, že výkon je hodně závislý na zvolených MPM a konkrétním nastavení. Tam, kde je nutné udělat kompromis ve výkonu, Apache je navrženo tak, aby latence byla co nejnižší a propustnost co nejvyšší, vzhledem k obsluze více požadavků, tedy zajistit konzistentní a spolehlivé obsloužení požadavků v co nejkratším časovém rámci.

Za nejvýkonnější verzi, podle Apache Foundation, je považována vícevláknová verze kombinující více procesů a více vláken na proces. Tato verze je výkonnější než předešlá víceprocesová verze, protože vlákna mají menší režii než procesy, ale stále nedosahuje výkonu architektury založené na eventech, na které jsou založeny některé konkurenční servery.

Licence 
S vydáním Apache 2.0 Apache Foundation přijala novou licenci Apache License. Někteří uživatelé tuto změnu neakceptovali a na verzi 2.0 nepřešli.

Související články 
 Apache Software Foundation
 Webový server
 Seznam webových serverů
 LAMP

Reference

Externí odkazy 
 
 Oficiální web Apache
 Seriál Hrajeme si s Apache
 Seriál Malý průvodce konfigurací Apache

 
Webové servery
Multiplatformní software
Svobodný software v C
Software pod licencí Apache