Jak na Internet server ? (9)
Proxy server Nejprve je nutné si uvědomit, co je to proxy server (nebo též proxy gateway). Proxy server je jakási roura (která může například vést skrze protipožární zeď vaší sítě...), přes níž procházejí přístupy k určitým službám jinde, v našem případě vně naší sítě - na Internetu. V praxi jsou nejznámější proxy pro WWW (resp. pro http), dále známe též ftp proxy, Gopher proxy a WAIS proxy. Pokud to celé přitáhneme poněkud za vlasy, může existovat též telnet proxy, mail proxy atd. Proxy server se jeví obvykle uživateli jako naprosto transparentní. Určitou výhodou WWW proxy je to, že správce serveru na druhé straně spojení nezná IP adresu a jméno uživatelské pracovní stanice, ale jen adresu proxy. Ve chvíli, kdy se objevila první WWW proxy gateway, napadlo její autory, že by mohla fungovat také jako cache (ukládá dokumenty, jež putují přes ní, na svůj lokální disk), čímž je možné snížit traffic na vaší přípojce k Internetu a samozřejmě také na Internetu samotném a též zrychlit přístup uživatelům k dokumentům, které již tahal někdo před nimi a zůstaly v cache. Celý systém se nazývá proxy cache a samozřejmě, čím má k dispozici více diskového prostoru na HTML dokumenty, tím pracuje lépe. Určitou nevýhodou proxy cache je však to, že některé stránky bývají pravidelně aktualizovány a proxy server si toho prostě nevšimne (zde však pomůže funkce reload vašeho prohlížeče), tuto chybu se však mj. snaží odstranit inovace protokolu http ve verzi 1.1. Když pak byla hotova i proxy cache, kohosi z týmu vyvíjejícího proxy cache známou jako Harvest napadlo, že by se mohlo propojit více proxy cache serverů do sítě za sebou, čímž bude možné také zrychlit přístup k dokumentům a podstatně ulehčit internetovým linkám. A tak se jeden proxy server ptá dalších, zda nějaký dokument nemají, pokud ano, tak si jej vezmou od nich a pokud nikoli, postupují přes tyto proxy servery dále (aby si dané stránky mohli stáhnout i další uživatelé). Takže spojení přes síť proxy serverů může vypadat i takto:
![]() V praxi to pak může být např. (pokud jste připojeni na CESNET) takto: vaše PC -> firemní proxy cache -> cache.cesnet.cz -> cache.ecrc.net (Německo) -> cache.ans.net (U.S.A.) -> www.software.ibm.com. Počet uživatelů, kteří tak budou moci využít stránku staženou na vaši žádost, narůstá geometrickou řadou. Jen dodám, že u nás je síť proxy serverů poměrně hustá. Kromě cache.cesnet.cz je to též např. vultur.vslib.cz, na Video-On-Line proxy.vol.cz a i na sítě některých dalších providerů, např. Datac, jsou připojeny soukromé počítače, které nevlastní provider, a které proxy cache provozují. Jejich jména však jaksi zrovna nepatří mezi ta uveřejňovaná). A teď ale pozor. Jestli si myslíte, že síťovou proxy cache umožňuje provozovat proxy z Apache httpd, CERN httpd, nebo třeba proxy z komerčního Netscape Proxy serveru, pak si to nemyslete, není tomu tak. Síťovou proxy zatím umožňuje provozovat jen jeden jediný produkt a je jím Squid, pokračovatel a následovník programu Harvest (vyvíjený dokonce týmž týmem). Squid patří mezi freeware, k dispozici jsou i zdrojové kódy, které umožňují jeho implementaci pod téměř jakoukoli platformu, zatím Squid běží na celé řadě unixových systémů včetně Linuxu a pod operačním systémem OS/2. Také se vám zdá, že to není náhoda, že pod OS/2 existuje portace téměř jakéhokoli unixového programu, kdežto pod Windows NT nikoli... ? Takže jak Squid získat ? Zkuste opět osvědčenou metodu - největší české ftp servery, popř. Nosey Parkera, pokud nejste připojeni k CESNETu, EUnetu, SpiNetu, CzechNetu či NetForce, zkuste raději ftp server sunsite.unc.edu (popř. ftp.funet.fi), nebo si vezměte na pomoc AltaVistu a hledejte Squid. Poslední verze Squida má v době vydání tohoto příspěvku číslo 1.1.2, častěji se však setkáte s používáním starší série (a na rozdíl od série 1.1.x také neexperimentální) 1.0.x, kde je poslední verze 1.0.20. Opět nás čeká rozbalení programem Tar (popř. též Gzip,) a konfigurace. Konfigurační soubor Squidu se jmenuje squid.conf a nalézá se (při instalaci Squidu na /usr/local/squid) obvykle v /usr/local/squid/etc. U konfigurace Squidu je potřeba již o něco více přemýšlet, není to již tak jednoduché jako nakonfigurovat Apache. Příklad konfigurace Squid pro naší ukázkovou síť je zde (jen pro doplnění uvedu, že program Squid umí ještě řadu dalších věcí, jako třeba omezení přístupů k serverům atp., které pro jednoduchost vynechávám):
http_port 3128
cache_host vultur.vslib.cz parent 3128 3130
inside_firewall domena.cz
single_parent_bypass off
neighbor_timeout 4
cache_dir /var/squid
cache_access_log /var/log/squid/access.log
cache_ftp_program /usr/local/squid/bin/ftpget
cache_dns_program /usr/local/squid/bin/dnsserver
http_stop /cgi-bin/
gopher 4 4320
request_size 300
ttl_pattern ^http:// 1440 20% 43200quick_abort off negative_ttl 5 positive_dns_ttl 360 negative_dns_ttl 5
connect_timeout 120
acl manager proto cache_object
acl SSL_ports port 443 563
http_access deny manager !localhost
cache_mgr root
append_domain .domena.cz
Nejprve si musíme uvědomit, kde chceme mít cache s HTML dokumenty. Já jsem pro tento účel zvolil adresář /var/squid. Pomocí proměnných 'cache_mem' a 'cache_swap' lze určit, kolik paměti a místa na disku smí Squid nejvíce využívat. Další proxy servery, na něž se náš proxy server má obracet s dotazy, jsou definovány pomocí proměnné 'cache_host'. Pomocí neuvedené proměnné 'cache_host_domain' lze i určit, který proxy server se má využívat pro kterou doménu. Konfigurace koncového proxy serveru je ještě docela jednoduchá, ale představte si např. stovky cache_host a cache_hsot_domain položek v konfiguraci centrálních proxy serverů některé velké veřejné sítě. Další významné proměnné 'inside_firewall', 'local_domain' a 'local_ip' definují, na které systémy má náš proxy server přistupovat přímo. Pokud tohle bude nakonfigurované špatně, nemusí proxy server přístup k dokumentům zrychlit, ale naopak značně zpomalit, a to platí včetně lokálních dokumentů. Další proměnné nastavují jméno systému, jméno a skupinu uživatele, s jehož UID a GID Squid běží. Nedoporučuji měnit ty proměnné, které nastavují časové prodlevy, práci s DNS, porty jednotlivých služeb atp., pokud naprosto přesně nevíte, co děláte. Výše uvedená konfigurace Squid je relativně chodivá a odzkoušená, takže si užijte proxy cache v provozu a příště se sejdeme nad firewallem. Zbyněk Pospíchal
|