INTERNET4U

Jak na Internet server ? (8)

V p°edchozφ Φßsti jsem p°iblφ₧il protokol HTTP. Nynφ nßs Φekß problematika WWW. Cel² WWW je postaven na jazyce HTML (HyperText Markup Language), kter²m se definujφ znßmΘ WWW strßnky.

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 , nebo, pokud nemßme verzi programu tar podporujφcφ gzip kompresi, pou₧ijeme gzip -d ; tar -xvf .

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
Port 80
HostnameLookups on
User nobody
Group nogroup
ServerAdmin webmaster@domena.cz
ServerRoot /usr/local/apache_1.1.1/
ErrorLog logs/error_log
TransferLog logs/access_log
PidFile logs/httpd.pid
ScoreBoardFile logs/apache_status
ServerName www.domena.cz
Timeout 400
KeepAlive 5
KeepAliveTimeout 15
MinSpareServers 5
MaxSpareServers 10
StartServers 5
MaxClients 150
MaxRequestsPerChild 30

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


HorkΘ novinky - leden '97 | HorkΘ novinky | internet4U homepage