HTTP server Apache

linux_server.jpg Keď sa povie slovo internet, mnohí menej znalí používatelia tejto siete sietí povedia, že sú to „webové stránky“. Nevedia, že web, teda úplným označením World Wide Web (svetová rozľahlá pavučina) je iba jedna z mnohých súčastí internetu, aj keď dnes asi najvýznamnejšia. A jej sa teraz budeme venovať.

Web
Web (WWW) je kolekcia všetkých serverov obsahujúcich určitý materiál alebo obsah, ktorý sa dá zobraziť na obrazovke klientskeho počítača v programe nazývanom webový prehliadač. Web sa teda skladá zo serverov a z klientov. My si v tomto seriáli ukážeme, ako vytvoriť webový server, ako ho nastaviť, riadiť, sledovať, zabezpečovať a ako ho pripojiť do internetu tak, aby sme mohli jeho obsah ponúknuť širokej palete klientov. Ešte predtým však treba vysvetliť, ako prebieha komunikácia medzi serverom a klientom.

Klient – server
Komunikácia medzi serverom a klientom je znázornená na obr. č. 1.

linux_prakticky OBR1.bmp
Obr. 1

Ak chce používateľ sediaci za klientskym počítačom zobraziť určitú stránku z konkrétneho webového servera, používateľ zadá vo webovom prehliadači adresu daného servera. Prehliadač sa spojí so serverom, ktorému daná adresa patrí, a pomocou protokolu HTTP (HyperText Transfer Protocol = protokol na prenos hypertextových informácií) mu odovzdá požiadavku na konkrétnu webovú stránku. (Protokol HTTP bol vytvorený práve na prenášanie webových stránok.) Server požiadavku prijme, a ak danú stránku nájde vo svojej predpísanej adresárovej štruktúre, zašle ju (zase pomocou protokolu HTTP) klientovi. Ten stránku prijme a zobrazí na obrazovke počítača. V prípade, že sa žiadaná stránka na disku servera nenachádza, zašle server klientskemu počítaču chybové hlásenie „Error 404“ o tom, že žiadaná stránka sa nedá zobraziť.

HTML
Pre úplnosť si ešte vysvetlíme, ako vlastne webová stránka vyzerá. Nie je to obrázok, ako by si niekto myslel, ale špeciálny text, napísaný v jazyku HTML (HyperText Markup Language = hypertextový značkovací jazyk). Nie je našou úlohou naučiť sa tento jazyk, ale ako budúci správcovia webového servera musíme aspoň trochu vedieť, ako vyzerá.

Text stránky v jazyku HTML je v podstate klasický text, ktorému hovoríme aj zdrojový text stránky. Skladá sa zo špeciálnych slov v lomených zátvorkách, ktorým hovoríme značky (tags). Na výpise č. 2 je časť takého zdrojového textu.

<HTML>
<HEAD>
	<TITLE> Moja prva stranka </TITLE>
</HEAD>

<BODY BACKGROUND="poz3.gif">
<H1 ALIGN=CENTER><FONT COLOR=BLUE> Moja skolská stránka</FONT></H1>

<P><H4><B> Adresa nasej skoly je: </B></H4>
<I>Sportova 41 <BR>
Nove Mesto nad Vahom<BR>
</I>

<P>
<P>
<P>
<P>

<FONT SIZE=5> <I>Mame tieto predmety: </I></FONT>
<UL>
	<LI Type=Square> matematiku
	<LI Type=Circle> fyziku
	<LI Type=Disc> chemiu
</UL>	

<P>
<IMG SRC="kalk.gif" WIDTH=70 HEIGHT=100 ALIGN=BoTTOM>
V matematike preberame kvadraticku rovnicu typu
<H2 Align=CENTER> <B><I> ax<SUP>2</SUP>+bx+c=0 </I></B></H2>
<P> 
Na chemii zase zlozenie vody:
<H2 Align=CENTER> <B><I> H<SUB>2</SUB>O </I></B></H2>
.
.(skrátené)
.
 
</BODY>
</HTML>

Ako sa však takýto text zobrazí na obrazovke počítača? To je práve úloha klientskeho programu – webového prehliadača. Ten musí rozumieť jednotlivým značkám v texte a podľa nich vytvoriť zobrazenie stránky. Takže zdrojový text stránky z výpisu č. 2 sa obrazovke počítača zobrazí tak, ako to znázorňuje obr. č. 3.

linux_prakticky OBR3.bmp
Obr. 3

Medzi najznámejšie webové prehliadače patria Opera, Mozilla Firefox, Netscape Navigator, ale aj pomerne rozšírený Internet Explorer. Každá stránka, a teda aj jej zdrojový text je súbor. A ako každý súbor musí mať svoje meno a príponu. Meno môže ľubovoľné, prípona je v tvare .htm, .html, prípadne je to iná špeciálna prípona, čo si neskôr vysvetlíme.

HTTP server
Keďže webový server komunikuje protokolom HTTP, hovorí sa mu aj HTTP server. Netreba ani pripomínať, že HTTP server môže (ale nemusí) existovať na tom istom počítači, kde je aj poštový server, proxy server a podobne. Vo svete počítačov existuje veľa druhov HTTP (webových) serverov pre rôzne platformy operačného systému. Pre operačný systém MS Windows je to HTTP server IIS, pre operačný systém Linux je ich niekoľko, najznámejší je však HTTP server Apache.

Apache
Rob McCool vytvoril v National Center for Supercomputing Applications úspešný webový server NCSA. Ten bol však komerčný, a tak vo februári 1995 Rob McCool od National Center for Supercomputing Applications odišiel a odštartoval voľne šíriteľnú modifikáciu pôvodného servera NCSA. Boli k nemu postupne pridávané malé časti kódu, ktoré zvyšovali jeho funkčnosť a stabilitu. Týmto malým častiam kódu sa hovorí „záplata“, po anglicky a patch (čítaj e peč), a keďže tých záplat bolo dostatok, dali podnet na pomenovanie nového servera Apache (čítaj epeč). Prvá verzia Apache vznikla 18. marca 1995 a niesla označenie Apache 0.2. Najúspešnejšia bola verzia s číslom 1.3, dnes je dostupná posledná stabilná verzia s číslom 2.2.4.

Ako Apache funguje
Už sme spomenuli, že Apache je HTTP server. Existuje pre operačné systémy Linux, Microsoft Windows, Mac OS a iné. Pod Linuxom môže bežať na počítači (serveri), kde bežia aj iné služby Linuxu. Veľmi často sa v malých firmách a školách Apache nasadzuje na počítač, ktorý slúži zároveň ako brána do internetu pre lokálnu sieť (najčastejšie spolu s firewallom), a tak webový server môže byť prístupný nielen z lokálnej siete, ale aj zvonku – z internetu.

Programový balík Apache má architektúru tvorenú niekoľkými vrstvami. Základná vrstva je jadro (jadro HTTP servera Apache, nie linuxové jadro!), ktoré zodpovedá za komunikáciu s operačným systémom a jeho sieťovým prostredím. Jadro je veľmi jednoduché a primitívne, vlastná funkčnosť HTTP servera je daná modulmi, ktoré môžu byť jeho pevnou súčasťou alebo ich možno dynamicky pridať alebo odobrať priamo za behu programu. Moduly obsahujú množstvo takzvaných direktív, ktoré potom nastavujú konkrétne vlastnosti servera. Na obrázku č. 4 je zjednodušená architektúra HTTP servera Apache.

linux_prakticky OBR4.bmp
Obr. 4

Vrstva č. 1 je najnižšia vrstva, tvorená operačným systémom. Apache preberá od operačného systému napríklad komunikáciu cez sieťové rozhranie, rôzne nastavenia a podobne.

Vrstva č. 2 zabezpečuje základnú funkcionalitu. Tvorí ju program Apache, ktorý sa skladá z jadra, pevných modulov a niekoľkých štandardných knižníc. Jadro Apache spolu s modulom http_core implementuje základné funkcie a zabezpečuje prepojenie API (Apllication Programing Interface) na komunikáciu s vrstvou č. 3, ktorú tvoria externé moduly.

Vrstva č. 3 je vrstva externých modulov. Moduly rozširujú funkcionalitu HTTP servera Apache o ďalšie možnosti (na najzákladnejšiu činnosť Apache nie sú tieto moduly potrebné).

Vrstva č. 4 môže (ale nemusí) obsahovať ďalšie submoduly, ktoré rozširujú server o nové vlastnosti. Niektoré moduly, napríklad mod_perl alebo mod_ssl, môžu využívať submoduly ďalších výrobcov.

Moduly
Výsledná funkcionalita Apache je daná modulmi, ktoré sú v okamihu spustenia Apache dostupné. Tie môžu byť pevne zabudované do jadra alebo môžu byť pridané pri spustení ako externé súbory. Moduly sú k dispozícii v dvoch typoch súborov. Na preklad sú moduly distribuované vo forme zdrojových kódov, súbory majú príponu .c a sú súčasťou inštalačného balíka. V rámci binárnej inštalácie sú moduly dodávané ako dynamicky zdieľané objekty DSO (Dynamic Shared Object). Tieto súbory majú príponu .so a sú štandardne umiestnené v adresári /modules koreňového adresára Apache. Tie sa dynamicky zavádzajú pri štarte Apache.

Existujú moduly na spracúvanie skriptov napísaných v jazyku Perl, PHP, Python, iné zaisťujú rôzne metódy autentizácie používateľov, uľahčujú publikovanie obsahu a spracúvajú obsah netextového typu, ako je napríklad zvuk. Takéto moduly ponúka nielen vývojová skupina okolo Apache, ale aj vývojári iných strán a šírka ponuky neustále rastie. Potrebný špecifický modul teda môžeme nájsť na internete a dokážeme ho v Apache použiť. No a ak nám žiadny nevyhovuje podľa našich predstáv, môžeme si napísať vlastný modul. (Nie, nesmejte sa, naozaj to zvládnete. Stačí, ak si vezmeme zdrojový kód vhodného modulu, trochu upravíme „na svoj obraz“, prekompilujeme a hotovo!) Modulov je značné množstvo, nebolo by správne teraz ich všetky vymenovať. Budeme ich vysvetľovať, keď na ne narazíme v našom seriáli.

Inštalácia HTTP servera Apache
Apache je súčasťou azda každej známejšej distribúcie Linuxu a tak sa isto v nej nachádza ako inštalačný balíček.

Pozor!
Aj keď sa program nazýva Apache, inštalačný balíček – či už vo forme binárneho, alebo zdrojového kódu – má názov httpd (http daemon).

Preto môžeme nainštalovať Apache spôsobom obvyklým pre príslušnú distribúciu. V distribúciách založených na balíčkoch RPM môžeme použiť príkaz rpm alebo ešte vhodnejšie nám už známy príkaz yum install http, ktorý nainštaluje, prípadne zaktualizuje HTTP server (yum update http). Keby predsa len niekto chcel inštalovať zo zdrojových kódov, nájde ich na adrese www.apache.org. Pre nedočkavých „kompilistov“ uvádzam stručný opis kompilácie a inštalácie Apache:

# gzip -d httpd-NN.tar.gz
# tar xvf httpd-NN.tar
# cd httpd-NN 
# ./configure --prefix=PREFIX 
# make 
# make install 
# vi PREFIX/conf/httpd.conf 
# PREFIX/bin/apachectl -k start

kde NN je číslo verzie a PREFIX je cesta, kam chceme Apache inštalovať. Posledný príkaz spustí HTTP server.

Prvé spustenie HTTP servera Apache
Po inštalácii servera Apache by mala nasledovať jeho konfigurácia. No aj bez konfigurácie môžeme zistiť, či server naozaj beží, ako má. To, že sa Apache dá spustiť aj bez prvotnej konfigurácie, svedčí o jeho efektivite a stabilite. Spusťme teda na strane Linuxu HTTP server Apache príkazom

 [root@server root]# service httpd start

Keďže sme ešte neupravovali konfiguračný súbor, pri štarte servera sa objaví hlásenie:

Starting httpd: httpd: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.0 for ServerName

linux_prakticky OBR5.jpg
Obr. 5

ktoré naznačuje, že sme nenastavili kvalifikované doménové meno v položke ServerName. Napriek tomu sa server spustí, o čom sa presvedčíme tak, že na klientskom počítači (ktorý je, samozrejme, pripojený k serveru) zadáme vo vhodnom webovom prehliadači adresu IP servera. Na obrazovke klienta sa zobrazí úvodná stránka servera Apache (obr. č. 5).

Zatiaľ toľko stačí, nabudúce sa budeme venovať konfigurácii.

Ďalšie časti >>

Zdroj: Infoware 7-8/2007



Ohodnoťte článok:
 
 
 

24 hodín

týždeň

mesiac

Najnovšie články

Li­nux prak­tic­ky ako server úvod
Linux ako server je pomerne zložitá technológia. Jej výhodou je určitá modularita, keď sa nemusí nastaviť celý server naraz, ale postupne. čítať »
 
Syn­chro­ni­zá­cia ča­su v Li­nuxe
V predchádzajúcich dvoch častiach sme si ukázali, že Linux a všeobecne open source softvér sa nenachádza iba v serveroch a počítačových sieťach, ale aj v iných zariadeniach bežnej domácej potreby a v oblasti hobby. čítať »
 
Za­ria­de­nia za­lo­že­né na Li­nuxe
V predchádzajúcej časti sme si spomenuli definície nie - ktorých pojmov z oblasti nášho záujmu, teda Linuxu. Vysvetlili sme si, čo je to Open Source, Public Domain, proprietárny softvér a GNU GPL. Tentoraz ukážeme, ako sa tieto pojmy využívajú v praxi. čítať »
 
Po­jmy z ob­las­ti
Tentoraz na chvíľu trochu odbočíme od bezpečnosti Linuxu a jeho siete. V tejto neštandardnej časti seriálu sa mu budeme venovať len okrajovo. čítať »
 
Bez­peč­nosť bez­drô­to­vých sie­tí II.
V predchádzajúcej časti sme sa začali zaoberať bezpečnosťou bezdrôtových sietí. Poukázali sme na rôzne faktory zneužitia siete, podstatu rizika a vysvetlili sme základné prvky bezpečnosti. čítať »
 
Bez­peč­nosť bez­drô­to­vých sie­tí I.
V predchádzajúcich častiach sme sa venovali bezpečnosti linuxového servera. Riešili sme firewall, bezpečnosť prístupu na internet, zaoberali sme sa demilitarizovanou zónou a podobne. čítať »
 
Údr­žba lo­gov – kon­fi­gu­rá­cia log­ro­ta­te
V predchádzajúcej časti sme sa venovali rotácii logov. Vysvetlili sme princíp ukladania logov, spôsob, ako sa rotujú, a uviedli sme niečo o tom, čo a ako treba nastaviť čítať »
 
Údr­žba lo­gov – ro­tá­cia
V predošlej časti sme sa zaoberali spôsobom logovania informácií na iný alebo vzdialený počítač a ukázali sme, ako riešiť problém s logovaním uzavretých procesov pomocou chroot. čítať »
 
 
 
  Zdieľaj cez Facebook Zdieľaj cez Google+ Zdieľaj cez Twitter Zdieľaj cez LinkedIn Správy z RSS Správy na smartfóne Správy cez newsletter