Röviden
Az apache-t valószínűleg sokaknak nem kell bemutatnom. Gyors,
biztonsagos, fejleszthető, és a forráskódja is szép. Mivel
szabadon használható, minden Linux disztribúcióba belkerült,
igy elég könnyen beszerezhető. A platform támogatottsága
elég jó, fut akar Win32-n is, bár ezen a platformon nem képes a
Linuxon megszokott biztonságot és stabilitást biztosítani.
Veszélyes vetélytársai nincsenek, a webszerverek több mint 60
százalékát működtetik apache-al. Erőforrásigényei szolidak.
A fejlesztés jelenleg az 1.3.x sorozat végén tart, a nemrég kibocsájtott 1.3.19-es verziót az utolsónak szánták és béta stádiumba lépett az apache 2 fejlesztése. Nagy újítás lesz benne a thread/process hybrid üzemmód, és sok új modul is belekerül, sajnos a ha 1.3.x alá írtál egy modult, akkor az csak átalakítások után lesz használható a 2.x-es verziókban.
A legfrissebb forráskódok mindig letölthetőak az apache
project homepage-éről:
http://www.apache.org/
A siker titka
Az apache valóban kivállóan megírt szoftver. az alapfunkcionalitást
megvalósító core modul köré sok apró feladatot megvalósító modul épül.
Ilyen modul valósítja meg például az http azonosítást is, de például
a biztonságos HTTPS protokolt is. A modulok befordíthatóak
az apache bináros kódjába statikusan is, de egy modul (mod_so)
segítségével dinamikusan is betölthetőek. Így egy könnyen
bővíthető, egyszerűen konfigurálható webszervert kapunk.
A standard apache is nagyon sok modult tartalamz, de fordíthatsz
vagy építhetsz hozzá magad is. Ezen a helyen taláhatsz néhány
jól megírt modult:
http://modules.apache.org/
Forditás
Ha fordítottál már Linuxra programot, akkor a forditás nem okozhat
komolyabb problémát. A configure scripttel előállítod a makefile-okat,
amelyek segítségével make utasítással létrehozod a tárgykódot és a
megfelelő jogosultsagok megszerzése után (su) make install-al
install-hatod. Mind ez persze az apache disztribúcióban bővebben le
van írva.
Konfiguráció
A konfiguráció legjelentősebb része a httpd.conf fileban szokott
elhelyezkedni, itt lehet beállítani esetleg további konfigurácios
fileokat. A konfigurácios direktivák lehetnek
Az alap modul
Mint már említettem, az alap modul csak a legfontosabb központi
feladatokat látja el, de már ezzel is elég sok mindent el lehet
érni. Néhány látványosabb konfigurácios direktiva a kedvenceim
közül:
ErrorLog Ezzel lehet beállítani, hogy a hibaüzeneteket melyik file-ba írja az apache. A CGI scriptek által log vagy error kimenetre írt adatok is ide kerülnek, így ha jobb ötleted nincs debugolásra is használhatod. Ha nem használod, akkor dev/null is lehet.
LimitRequestBody
Ez agy nagyon hasznos dolog. Ezzel szabhatod meg, hogy
mekkora lehet a maximális méretű request, így nem
lehet a CGI scriptedet agyoncsapni túl nagy méretű
adatokkal.
RLimitCPU, RLimitMEM, RLimitNPROC
Meg tudod határozni, hogy az apache az erőforrások
mekkora részét használhatja. Ezzel elkerülheted azt a
problémát, hogy hibas CGI scriptet irtál, ami elnyeli
CPU idő nagy részét, te pedig nem jutsz szóhoz, hogy
le tudd lőni az elszabadult programot.
TimeOut
A kérés kiszolgálásával letölthető legtöbb időt itt
tudod meghatározni, alapertelmezésben 300, de nyugodtan
leveheted 10-20 körüli értékre is, ha nem irtál valami
nagyon CPU igényes CGI programot. Ha ennyi időn belül
nem végez a request kiszolgálásaval, akkor az esetek
többségében már nem is fog.
Néhány érdekes modul
Az alábbiakban felsorolom néhány kedvenc modulomat, amelyekkel
szép és látványos kimenetet és működést lehet produkálni. Az
összes konfigurációs direktiva leírása elég hosszú lenne, ezek
le vannak írva az apache dokumantációjában.
mod_autoindex
Ez a modul hozza létre a már jól ismert automatikus
állománylistát a könyvtárakból. Ha a modul nincs
beforditva, akkor az apache megtagadja a hozzáférést
a könyvtárhoz. Érdekes lehetőségek:
mod_so
Shared object fileok futásidejű betöltésére. Nem a
konfigurácios lehetőségei miatt fontos, hanem azért,
mert ezzel a modullal töltheted be az összes többi
shared objectként lefordított modult is.
mod_rewrite
Ez a modul már igazi extra funkcionalitás. Ahogy alkotója,
Ralf S. Engelshall írta: "Az URL manipulácio
svajcibicskája". A modul lényege, hogy az érkező
kérésekből regexp-ek segítségével új kérést fabrikál,
és azt végrehajtja az igazi kérés helyett. Így például
eltakarhatjuk a rendszerünk architekturális felépítését
a felhasználóink elől, az url-eknek nem kell .php, .cgi,
vagy éppen .dll 'kiterjesztésű' fileokra mutatniuk.
Jól jöhet akkor is, ha a rendszeredet átépíted, html-eket
áthelyezel, eseteleg egy CGI teljes paraméterezését
megváltoztatod. A rewrite modullal továbbra is fel tudod
dolgozni a régi requesteket is, minden fennakadás nélkül.
mod_ssl
Ez a modul a https protokolt valósítja meg, azaz nyilt
kulcsú kodoláson alapuló biztonságos kapcsolatot hozhatunk
létre segítségével a kliens és a szerver kozott. (Meg kell
jegyeznem, hogy ha a kliens MS-IE, akkor ezzel komoly
problemáink lesznek.) A szerzője szintén Ralf S. Engelshall,
így ő írta meg két kedvenc modulomat is. Mivel néhány extra
package szükséges hozzá, nincs benne a standard apache
disztribúcióban, viszont le lehet tölteni mod_ssl-eol fordított
apache binárisokat is.
Nagyon sok lehetőség bújik meg benne, igazán profi rendszer
A legjobb, ha átolvasod a dokumentációt.
folyt köv :)