Apache je, posle Linux-a, najpoznatiji open source proizvod. Sa preko devet miliona domena i gotovo 1.2 miliona IP adresa koje opslužuje zauzima 54% tržišta Web servera. Glavni konkurent mu je Microsoft Internet Information Server koji je za oko 20% manje zastupljen. Apache drži vodeću poziciju još od 1996. godine, ali se razlika konstantno smanjuje. Apache je apsolutno preovladao na Unix platformama, pa je glavni cilj nove verzije poboljšanje pozicije na ne-Unix platformama, gde je IIS u prednosti.
Apache za Windows
Apache je gotovo oduvek podržavao i ne-Unix platforme, ali Apache na Windows-u nikad nije bilo rešenje koje je garantovalo stabilnost. Kako se novi Apache nosi sa konkurencijom? Njegov osnovni adut je nenarušena reputacija kad je u pitanju bezbednost – poslednji ozbiljni sigurnosni propust, koji bi potencijalnom napadaču dozvolio da izvrši proizvoljni kod, zabeležen je pre više od pet godina, januara 1997. Što se tiče performansi, prvi testovi su pokazali da na Windows 2000 platformi Apache 2.0 postiže barem iste performanse kao IIS 5.0.
Postoje i nedostaci. Apache na Windows-u još uvek nema alatku sa lepim grafičkim interfejsom za konfigurisanje servera. Kao i u svim ostalim verzijama, konfiguriše se editovanjem tekstualne datoteke httpd.conf. Datoteka sadrži iscrpna objašnjenja i uputstva vezana za proces konfigurisanja, ali to je ipak nešto što bi moglo da odbije administratore-početnike. Proces instalacije servera je jednostavan i traje svega nekoliko minuta.
Apache je bio dizajniran kao fleksibilan Web server koji može da funkcioniše na velikom broju raznorodnih platformi u različitim okruženjima. Različite platforme često imaju potrebe za različitim funkcionalnostima ili zahtevaju drugačije implementacije da bi se jedna funkcionalnost implementirala na najefikasniji način. Apache se odlikuje modularnom arhitekturom koja je omogućavala administratorima da odluče koju će funkcionalnost server imati. Osim elementarne funkcionalnosti opsluživanja zahteva za statičkim html fajlovima, obezbeđen je niz zasebnih modula koji se po potrebi mogu uključiti ili isključiti. Nažalost, ti moduli su bili gotovo potpuno izolovani jedan od drugog. U verziji 2.0 ovaj nedostatak je otklonjen dodavanjem mogućnosti da mod_include pozove mod_cgi pomoću filtriranog input/output-a.
Mnogi moduli su pretrpeli izmene, a i dodati su novi. Modul mod_ssl je novi modul koji predstavlja interfejs za SSL/TLS protokole koje obezbeđuje OpenSSL. Drugi novi modul je mod_dav koji implementira HTTP Distributed Authoring and Versioning (DAV) specifikaciju, standard za udaljeni, distribuirani rad sa dokumentima.
Modularnost
Apache 2.0 proširuje modularnost sve do osnovnih funkcija Web servera. Sa serverom dobijate veći broj MPM (Multi Processing Modules) modula koji prihvataju zahteve i generišu procese i niti (threads) koji će te zahteve opsluživati. Da, Apache 2.0 podržava i procese i niti, što je bez sumnje najveći novitet verzije 2.0.
Apache 1.3 na Unix sistemu je radio tako da je sve zahteve opsluživao preko procesa. Da bi se izbegao overhead prilikom generisanja (forking) novog procesa za svaki zahtev, Web server bi odmah po startovanju kreirao više procesa, koji su čekali zahteve. Ovakav način rada se naziva preforking – server u svakom trenutku obezbeđuje da ima dovoljno procesa koji bi opslužili veći broj zahteva koji bi mogli da pristignu.
Ostavljajući uvek određen i broj idle procesa, Apache izbegava da pravi procese u najnezgodnijem trenutku po njega – kada korisnik pokušava da pristupi Web strani. Ovakav pristup se pokazao pouzdanim i efikasnim, ali je efikasnost bila ograničena na moderne Unix sisteme kao što je Linux, gde kreiranje procesa i prebacivanje konteksta nisu zahtevne operacije. Mana ovoga pristupa je otežana razmena podataka između procesa. Apache 2.0 podržava ovakav način rada preko prefork MPM-a, ali nudi i druge MPM-ove, koji mogu dati značajno bolje performanse.
Jedan takav MPM nosi ime threaded i prilikom startovanja servera takođe kreira veći broj procesa. Ti procesi ne opslužuju zahteve direktno, već svaki od njih služi kao kontroler za određeni broj niti (threads). Niti opslužuju zahteve, pri čemu je broj niti po procesu konstantan, a server kreira dodatne procese kada server postane opterećeniji. Hibridni rad i sa procesima i sa nitima podržava i perchild MPM. Funkcioniše slično, samo što održava broj procesa konstantnim, a broj niti u procesima varira zavisno od potreba.
Odluka da se softver piše „od nule“ bila je riskantna, ali Apache HTTP Software Foundation nije doživeo sudbinu Netscape-a i Quattro Pro-a, koji su prethodno pravljeni na sličan način. Ipak, teško je reći da li će Apache uspeti da porazi IIS na „Windows terenu“. Najnovija verzija Apache-a 2 u verzijama za razne platforme, uključujući Linux, Solaris, Windows, FreeBDS, BeOS, OS/2 i Mac OS X dostupna je na http://www.apache.org .
|