Základem jsou moduly

1. 11. 2000

Sdílet

Na první pohled je webový server relativně jednoduchá záležitost stačí jen navázat spojení s klientem a vydat mu po
Na první pohled je webový server relativně jednoduchá záležitost stačí jen
navázat spojení s klientem a vydat mu požadovaný soubor. Tato idea ale vzala v
průběhu času velice rychle za své, po moderním webovém serveru se požaduje
daleko více funkcionality.
Ta se dá samozřejmě řešit např. přímým zakomponováním potřebného kódu do
vlastního jádra serveru, ale to by nebyla v žádném případě správná myšlenka,
daleko zajímavější je modulární řešení. To umožňuje přizpůsobit webový server
téměř dokonale potřebám aplikace. Aby byl přístup k těmto modulům co nejvíce
urychlen, vznikl projekt Apache Module Registry, který najdete na adrese
http://modules.apache.org. Ze zde dostupných produktů se určitě nesmí
zapomenout na následující:
Apache-SSL (www.apache-ssl. org) modul umožňující rozšířit server o zabezpečení
používané např. pro webové obchodování. Takový server pak umožňuje připojení
protokolem https.
FastCGI (www.fastcgi.com) modul pro urychlení CGI aplikací pomocí nadstavby
FastCGI.
Midgrard (www.midgard-project.org) výborný aplikační server postavený na PHP a
MySQL.
mod_backhand (www.backhand. org) modul pro load-balancing, který umožňuje
distribuovat požadavky na více počítačů.
mod_perl (perl.apache.org) interpreter jazyka Perl, který je integrován přímo
do Apache a měl by zabránit zbytečnému overheadu při startu aplikací.
PHP (www.php.net) asi jeden z nejznámějších modulů, který se nemalou měrou
podílel na současném úspěchu celého serveru.

Drobné tipy pro praxi
Řada lidí Apache zatracuje se slovy, že se nejedná o server, ale o monstrum,
jiní jej právě pro tuto vlastnost milují. A právě díky širokému množství
možností existuje i velké množství možných vylepšení, kterými lze webovou
prezentaci trochu vyšperkovat, a odlišit se tak od konkurence...
Některé z nich budou i na následujících řádcích, nutno ovšem podotknout, že ne
všem musí vyhovat.
Tip č. 1 používejte pouze jeden konfigurační soubor ačkoliv server může
disponovat až 3 možnými konfiguračními soubory, je pro přehlednost dobré
používat pouze jeden, nebudete pak překvapeni z poněkud podivné funkčnosti.
Stačí jen dodat do hlavního konfiguračního souboru httpd. conf následující 2
příkazy: AccessConfig/dev/null a ResourceConfig/
dev/null.
Tip č. 2 upravte chybová hlášení pomocí konfigurační direktivy ErrorDocument
můžete upravit chybová hlášení webového serveru. Pokud tedy vaše stránky nejsou
úplně dokonalé, pak můžete časté špatné odkazy zamaskovat připravenou stránkou
s omluvou, případně s odkazem na vyhledávání. Prakticky tedy do konfiguračního
souboru napíšete řádek ErrorDocumnet 404 /chyba.htm. Tip č. 3 používejte
server--side include tato vlastnost je často opomíjena zejména ze strany
webových návrhářů, ale je to právě SSI, které jim může ušetřit řadu trápení
stačí navrhnout jednu stránku a ostatní již jen "dogenerovávat". Při případné
změně designu pak stačí upravit jen jeden soubor a ne již všechny soubory.
Tip č. 4 používejte více logovacích souborů při každém dotazu, který klienti
položí na webový server, dochází k zápisu informací o této skutečnosti do
souboru access_log. Ten lze pak použít v různých analytických programech a
slouží také pro audity serverů. Jedná-li se o relativně navštěvovaný server,
pak můžete již po chvíli zjistit, že soubor roste téměř nade všechny meze. V
takovém případě je vhodné použít rotování logů, kdy je pro předem definovaný
čas používán vždy jeden soubor. Po jeho uplynutí jej pak můžete např.
zkomprimovat nebo nahrát na jiný server žádná data se tedy neztratí. Prakticky
toho docílíte příkazem TransferLog "|/www/bin/rotalogs/nekde/ logy 86400",
který způsobí, že vždy jednou za den (86 400 sekund) bude vytvořen nový soubor
/nekde/logy.nnn, kde nnn je časová známka.

Apači jasní vítězové na webových pláních
Aleš Svoboda
Kolem Open Source softwaru existuje řada diskuzí o smysluplnosti takového
vývoje častým argumentem skeptiků pak je, že takové programy nemohou být nikdy
tak kvalitní jako komerční produkty. Samozřejmě, pro řadu programů to může
platit, ale zastánci free softwaru mají jeden příklad, který umlčí i toho
největšího řvouna server Apache, absolutně bezkonkurenční jedničku na poli
webových serverů.
Ano, opravdu, nejbližší protivníci jsou daleko za ním, podle posledního
průzkumu pořádaného firmou Netcraft je podíl Apache více než 60 %, druhé místo
obsazené IIS firmy Microsoft se pak může pochlubit pouhými necelými 20 %.
Neznamená to samozřejmě, že Apache je neomylný nebo absolutně dokonalý situace
je prostě taková. Něco podobného platí i v oblasti operačních systémů. Není na
světě program ten, aby se zavděčil lidem všem Apache ale k takové metě opravdu
nemá daleko.
Kdo to vítězí?
Jako každý správný vítěz i on si zaslouží trochu životopisných údajů, odhad
šancí v další sezoně a informace, pro jakou stáj tento superkůň vlastně běhá.
Ačkoliv by k tomu jeho jméno na první pohled mohlo svádět, nejedná se o žádný
projekt původních obyvatel Ameriky, ale o zkratku. Název vznikl z označení "A
PAtCH server" v prvopočátku šlo totiž opravdu o velice "záplatovaný" program,
který stavěl na starém projektu NCSA httpd serveru. Tento program byl totiž
otcem Apache a může se pochlubit ještě lepšími výsledky než jeho syn. V roce
1995 byl absolutně nejrozšířenějším webovým serverem, ale jeho spolehlivost
nebyla příliš vysoká. Počet bezpečnostních a funkčních děr a tomu
odpovídajících patchů pomalu přesáhl rozumnou míru. Proto v březnu tohoto roku
8 webmastrů zakládá Apache Group. S pomocí verze NCSA httpd 1.3 a vyšších tak
vzniká základ pro nový webový server, jehož první verze 0.6.2 se objevila v
dubnu roku 1995. V prosinci téhož roku pak byla slavnostně uvedena verze 1.0.
Ta nepotřebovala ani moc času a zaujala první místo ve všech statistikách,
vlastně necelý rok po zformování této vývojářské skupiny. Od té doby pak vývoj
postupoval nezadržitelně a nyní již existuje verze 1.3.14, která oproti původní
verzi disponuje řadou dalších modulů a širokými možnostmi konfigurace. V
přípravě je také již verze 2.0, která je právě ve fázi betatestování.
Tolik tedy o genealogii vlastního serveru dosud ale vlastně nepadlo ani slovo o
tom, co to vlastně Apache je. A ono ani nemuselo, slova jako webový server a
Apache jsou totiž ve světě IT téměř synonyma. Přesto se sluší upozornit aspoň
na některé základní vlastnosti, které posunuly Apache tam, kde nyní je na první
místo. Technicky vzato nejde vlastně o nic jiného než o silný, flexibilní
HTTP/1.1 webový server, který implementuje většinu posledních protokolů včetně
RFC 2616. Další výbornou vlastností je pak možnost integrování modulů třetích
stran, které mohou být samozřejmě i vlastní provenience. Výhodou je relativní
nezávislost na platformě server běží jak na unixových a jim podobných klonech,
tak na Windows 95/NT, Netwaru 5.x nebo na OS/2. Největší síla ale zřejmě
spočívá v již dodávaných modulech, pomocí nichž můžete provádět např.:
autentizaci uživatelů oproti databázi
kustomizovat chybová hlášení
flexibilní přepisování URL adres a přesměrovávat požadavky
"content negotiation" možnost dodat dokumet přesně podle požadavků klienta,
tedy např. jazykovou mutaci, správný charset atd.
virtuální hosty umožňuje provozování více serverů na jedné IP adrese, rozlišené
pouze pomocí doménového jména
Poslední a možná i jednou z nejdůležitějších specifik tohoto projektu je pak
cena programu je totiž zadarmo. Program dostanete pod velice liberální licencí,
samozřejmě včetně zdrojových kódů. To samé se pak týká většiny modulů, které
jsou pro Apache k dispozici.
Chcete ho také?
Je tedy jasné, že získat Apache do svých služeb nebude žádný problém, ale jaká
je skutečnost? Ano, to je sice pravda, získat jej není problém, stačí ho pouze
stáhnout buď přímo z domovských stránek projektu (www.apache.org), nebo využít
některé z bližších zrcadel, ale trochu horší je to se spuštěním takového
serveru nejedná se sice o nic složitého, ale odpovídajícím možnostem je
ekvivalentní i složitost vlastní konfigurace. Malinko lepší je situace v
případě windowsového klonu, instalace je díky instalátoru více než jednoduchá,
ale pak nastává pro pravé uživatele Windows peklo žádná konfigurační okna,
pouze link na httpd.conf, který se otevře v Notepadu (poznámkovém bloku). Na
druhou stranu je takováto praxe v UNIXu normální, horší je to však samozřejmě s
instalací jako nejjednodušší se zdá použít předpřipravené RPM balíky, ale pokud
chcete mít absolutní jistotu, pak použijte raději zdrojové kódy.
Co takhle vlastní verzi?
Jak již bylo řečeno dříve, Apache je distribuován včetně zdrojových kódů, z
čehož vyplývá i možnost vytvořit si svůj vlastní upravený server. To oceníte
zejména v případě, že vám defaultní instalační adresáře nevyhovují a chtěli
byste je upravit svým požadavkům a také v případě, že chcete změnit standardně
zakompilované moduly. Vše je díky použití configure relativně jednoduché, stačí
tedy použít pouze příkaz ./configure -prefix=instalační_adresář, poté make a
make install, a vaše verze Apache je hotova.
V této fázi lze také ovlivnit, které moduly budou do binárního souboru
zahrnuty. Zde jsou možné dva přístupy buď vše natvrdo zakompilovat a omezit
pokud možno počet modulů na minimum, anebo použít mechanismus dynamického
nahrávání modulů, tzv. DSO. V prvním případě můžete dosáhnout menšího a
rychlejšího kódu, ovšem bez možnosti přidávání či odebírání modulů bez nutné
rekompilace, v druhém případě získáváte relativní volnost, kdy jednotlivé
moduly stačí přidat pouze v konfiguračním souboru a restartovat server.
A co takhle okna?
Takže server už máme, přesně podle vašich představ a teď tedy konfigurace.
Opravdu asi nejjednodušší variantou je textový editor a vrhnout se do
konfigurace sami syntaxe je relativně jednoduchá a kromě nároků na vaše mozkové
závity i nejméně náročná. Pokud to s Apachem myslíte vážně, je to také asi
jediná správná cesta, v takovém případě vás ovšem čeká zkoumání dokumentace a
pokusy se syntaxí. Výbornou pomůckou může být použití tzv. "quick card", kde si
na adrese www.refcards.com/about/apache. html můžete stáhnout připravený seznam
nejdůležitějších konfiguračních direktiv.
V případě, že si z počátku nejste jisti anebo si chcete ušetřit práci, pak
můžete použít některou z dostupných grafických nadstaveb, které vám editaci
trochu ulehčí. Za zmínku stojí asi následující:
Apache Configuration Editor (www.darkphoton.com/darkstar/DSTACE) velice
jednoduchý nástroj, který pracuje pod Windows a umožňuje pouze triviální
editační funkce, přesto však může zabránit začátečnickým chybám při editaci.
Comanche (www.covalent.net/ projects/comanche/) Open Source editor a management
konsole zaměřený hlavně na Apache, který funguje jak pod UNIXy, tak pod Windows.
Mohawk (eunuchs.org/linux/Mohawk/) nástupce populárního programu TkApache,
který má ale mnohem větší ambice, umožňuje např. vzdálenou editaci, analýzu log
souborů atd. Program je však zatím teprve na počátku vývoje.
Vision for Apache (www.focus-array.com/products/VisionForApache/) komerční
program, který nabízí navíc řadu administračních nástrojů a také konfiguraci
SSL nadstaveb.
Webmin (www.webmin.com) webové rozhraní, které je sestavou řady skritpů v
Perlu, jež jsou volány jako CGI skritpy a umožňují kromě jiného i administraci
Apache. Nevýhodou je skutečnost, že server musíte nejprve pustit a pak jej
teprve můžete editovat.
Linuxconf (www.solucorp.qc. ca/linuxconf/) další univerzální rozhraní, které
může sloužit i k základní administraci webového serveru. Oproti předchozímu
projektu chce poskytovat velké možnosti rozhraní, kromě webové verze se tak
můžete setkat i s textovým rozhraním, grafickou verzí pro X Windows, a pak také
s možností ovládat program pouze pomocí příkazové řádky.
Velké finále
No a to je prakticky vše. Nyní již stačí jen váš nově nakonfigurovaný server
vybavit tím nejlepším obsahem a spustit magický příkaz /
usr/local/apache/bin/apachectl start nebo C:Program FilesApache
GroupApache>apache -k start a jste tam tedy přesněji řečeno na Internetu. Hodně
štěstí.
0 2881 / wep