![]() | |
Jak na Internet server ? (8)
WWW server Chcete-li jen zprovoznit WWW server, všechno, co bylo doposud uvedeno snad ani nepotřebujete vědět, ovšem pak by se mohlo stát, že nebudete vůbec tušit, co se vlastně děje. Budu zde popisovat zprovoznění freewarového Apache 'httpd' (existují implementace pro Unix a pro OS/2) verze 1.1.1 bez proxy gateway (tu si ukážeme později). Pokud chcete používat něco komerčního např. IIS pod Windows NT, pak přeji hodně štěstí, neboť jej asi budete potřebovat - složitým serverům, které se spravují přes WWW klienta místo přes konfigurační soubor a které nakonfiguruje i malé dítě, není radno příliš věřit. Jak můžete např. vědět, jestli si autor WWW serveru nenechal někde nějaké ukryté konto nebo, což je ještě horší, zda někde není nějaká záměrná security hole. Kromě Apache můžete na Unixových platformách používat také CERN 'httpd', NCSA 'httpd' a řadu dalších nekomerčních http daemonů. Jejich výhodou je extrémní jednoduchost, principiální neprobouratelnost (pokud ovšem nenecháte řádit nějaký cgi skript, což je další potenciálně slabé místo zabezpečení serveru) a nakonec i to, že jsou zadarmo. Můžete tedy použít balík Apache 'httpd', který určitě najdete na některém z největších českých ftp serverů, např. na pub.vse.cz, sunsite.mff.cuni.cz, ftp.cvut.cz nebo ftp.zcu.cz. K jeho vyhledání ale můžete využít též Nosey Parkera (http://parker.vslib.cz/parker.html).
Můžete si posloužit verzí, jež je k dispozici ve zdrojovém tvaru (tu obvykle poznáte tak, že se jmenuje jen apache_1.1.1.tar.gz nebo má kdesi ve jméně zkratku src), pokud si ale netroufáte na kompilaci, můžete též získat verzi již zkompilovanou (ta mívá ve jméně zkratku bin popř. jméno platformy, tj. např. apache_1.1.1-linux-ELF.tar.gz). Nejnovější beta verzí Apache je sice 1.2b4, ale poslední vydání obvykle nemusí být nejstabilnější. Celý balík umístíme tam, kde chceme mít jeho adresářovou strukturu (tj. např. /usr/local) a rozbalíme jej buď pomocí tar -xvzf
Nyní bychom server měli nakonfigurovat. K tomu slouží soubor httpd.conf (ale můžeme jej pojmenovat i jakkoli jinak, jak vyplyne z dalšího textu), který je obvykle umístěn v adresáři conf. Pokud tedy máme Apache nainstalován v /usr/local/apache_1.1.1, pak celá cesta konfiguračního souboru bývá obvykle /usr/local/apache_1.1.1/conf/httpd.conf).
Pokud instalujete Apache ve verzi pro OS/2 (lze jej najít např. na 'Hobbes' (ftp://hobbes.nmsu.edu, odpadá rozbalování tarem, naopak k cestě si můžete (ale nemusíte) přidat písmeno diskové jednotky. V OS/2 také není zvykem udržovat v umístění souborů tak striktní pořádek jako v Unixových systémech.
Konfigurační soubor httpd.conf může vypadat např. takto:
ServerType standalone
Nyní vysvětlím, co nedůležitější položky znamenají.
Proměnnou 'ServerType' se určuje, zda chceme, aby 'httpd' běžel sám o sobě, nebo zda jej má pouštět deamon inetd. Pokud použijete inetd, nebude sice v okamžicích, kdy na váš WWW server nikdo nepřistupuje 'httpd' spotřebovávat žádnou paměť a žádný výkon procesoru, ale zato ve chvíli, kdy se někdo rozhodne, že jeho služeb využije, se bude muset celý 'httpd' aktivovat (což rozhodně trvá nějaký čas). Proměnná 'port' definuje TCP/IP socket, na kterém má 'httpd' viset (standardně je to 80, to ovšem musí spouštět 'httpd' proces s právy root, uživatelé mohou své programy věšet na sockety až od 1024).
'HostnameLookups' určuje, zda si má 'httpd' zjišťovat jméno počítače, z něhož jste připojeni, nebo zda má vystačit s IP adresou, 'User' a 'Group' určují, s jakým UID (User ID) a GID (Group ID) má Apache běžet, 'ServerAdmin' je E-mail adresa správce serveru, 'ServerRoot' je kořenový adresář WWW serveru a 'ServerName' definuje DNS jméno tohoto serveru (to je zde spíše kvůli implementaci tzv. virtuálních serverů). Ostatní proměnné jsou poměrně nedůležité a také jsou dobře okomentované, pokud cítíte, že s nimi musíte experimentovat. Kromě tohoto konfiguračního souboru jsou k dispozici ještě dva další pro řízení přístupu k WWW dokumentům.
Apache 'httpd' umožňuje implementovat i tzv. virtuální servery, což je systém, který vám umožní rozjet na jednom počítači více zdánlivých WWW serverů (které však mohou jet všechny na stejném portu a odlišují se jen DNS adresou popř. též IP adresou - Apache totiž umí poznat, pod jakou adresou (viz část o DNS, speciálně záznamy CNAME) k serveru přistupujete. Operační systém Linux navíc volitelně implementuje systém nazývaný IP aliasing, který umožňuje, aby jedno síťové rozhraní (nejčastěji síťová karta) mělo více IP adres a tvářilo se jako více síťových rozhraní, čehož lze s úspěchem využít.
Apache 'httpd' spustíme klasickým způsobem, jen bývá zvykem uvést cestu:
/usr/local/apache_1.1.1/bin/httpd -f /usr/local/apache_1.1.1/conf/httpd.conf &
a přesně stejně jej umístíme do startup scriptů vašeho unixového stroje, v případě Linuxu z distribuce Slackware tedy do souboru /etc/rc.d/rc.inet2 nejlépe až nakonec, pokud máte extrémní smysl pro preciznost a estetiku, popř. požadujete extrémní spolehlivost provozu, můžete to udělat dokonce tak, aby si script sám otestoval, zda je tento daemon k dispozici a pokud ano, aby vypsal, že nabíhá (takhle nějak to mám udělané já) a samozřejmě se nastartoval:
if [ -f /usr/local/apache_1.1.1/bin/httpd ]; then
echo -n " httpd"
/usr/local/apache_1.1.1/bin/httpd -f /usr/local/apache_1.1.1/conf/httpd.conf >/dev/null &
fi
- pokračování příště -
Zbyněk Pospíchal
|