| |
Web Forwarding
je technologie, ktera byla znama jiz pomerne dlouhou dobu. Proxy cache Squid ji v zasade umela jiz vice nez pred rokem a pul a nikoho to v podstate nezajimalo. V posledni dobe
se vsak o tuto technologii zajem podstatne zvedl. Zajem zpusobila predevsim masivni reklamni kampan firmy Novell a jejiho produktu BorderManager FastCache.Zajem o tuto technologii ale nebyl takovy, aby vsichni sahli do kasicek a zaplatili Novellu 1000 USD za jeho produkt. Jedna z vyhod Internetu jako celku je ta, ze pokud je nejaka technologie dobra a podporuje ji pouze komercni produkt, tak velmi rychle vzniknou produkty freewarove ci sharewarove, ktere budou funkcne ekvivalentni s puvodnim komercnim produktem. Jako priklad muze poslouzit technologie MP3 - v dnesni dobe jsou desitky
freeware produktu podporujicich tuto technologii. Dalsi z moznosti, proc si komercni produkt nekoupit je mozna prave to, ze je to komercni produkt. Komercni produkty jsou obvykle znacne nepruzne, coz je prave pro Internet-based produkty velmi nesikovne, protoze Internet je velmi dynamicke medium. Jako priklad muze poslouzit tzv. Java Web Server firmy SUN, ve kterem jsem nasel chybu a reportnul ji. Bohuzel, po dvou mesicich neni jeste stale opravena, pricemz oprava teto chyby je primitivni (misto > tam ma byt >=) a zadne postrani efekty jeji oprava neprinese. Najivne jsem predpokladal, ze ji vyrobce opravi do nekolika dnu, tato zkusenost a jeste zkusenost s WinProxy mne jasne ukazali, ze pokud je jen trochu mozne nasadit free/share/open-source program, tak
ze je to ta nejlepsi mozna varianta. Co to vlastne je Web forwarding je technologie pri niz se proxy-cache server tvari navenek jako obycejny WWW server, zadosti o stranky vsak obsluhuje ze sve cache - neni tedy treba kontaktovat pri kazde zadosti uzivatele puvodni server. Pokud danou stranku v cache nema nebo je expirovana, kontaktuje puvodni server a stranku zaktualizuje. Jednodusi metoda Web forwardingu se nazyva redirecting - pri teto technologii se requesty necachuji a proto jsou vsechny posilany na puvodni server. Web redirecting se pouziva vetsinou pokud mate umisten vas WWW server
za firewallem a chcete jej zvenku zpristupnit. K cemu je to dobre- Pro udrzovani on-line mirroru WWW serveru.
- Na rozdil od klasicke technologie ftp mirroringu pracuje web forwarding i s "dynamicky" generovanymi strankami a neni jej nutno periodicky updatovat, protoze se updatne vzdy na zadost uzivatele.
- Na rozdil od mirroringu provadeneho protokolem http neni nutne periodicky prochazet cely WWW server. Pokud by byl obsah WWW serveru dynamicky generovan, bylo by nutne jej cely pri update mirroru stahnout, coz by dlouho trvalo zvlaste pokud by byl WWW server vetsi.
- Snizeni zateze WWW serveru
Spousta WWW serveru generuje sve stranky dynamicky, obvykle to byva pomoci technologie SSI, ASP ci dokonce generace stranek z databaze. Toto generovani je nutne znovu provadet pro kazdy pozadavek uzivatele a obvykle
vygeneruje pokazde na stejnou zadost stejnou stranku. Generovani stranky je casove narocny proces (SSI se generuji nejrychleji, ASP generovane z databaze mnohem pomaleji), takze pokud se na vas WWW server prihlasi soucasne vice uzivatelu a pro vsechny se musi vygenerovat WWW stranka, tak obvykle velmi dlouho cekaji (pochopitelne v zavislosti na rychlosti WWW serveru), pokud uzivatele transfer stranky stopnou a daji reload, protoze si mysli, ze to spadlo, jeste situaci zhorsi, protoze se vygeneruje zatim stara a uzivatel uz chce generovat novou. Nejpomalejsi je generovani WWW stranky pomoci technologie ASP z ODBC databze, to je opravdu _HODNE_ pomale a pokud mate takto udelany vsechny stranky, budete pokud mate alespon trochu navstevovanejsi WWW server potrebovat opravdu ponekud rychlejsi stroj. To same plati pro dynamicky generovane stranky serverem Lotus Domino, tomu se taky generovat stranky vubec nechce...
Jak to v praxi vypadaDosavadni server S - www.firma.cz presuneme nekam jinam, aby nam uvolnil DNS misto pro forwarder. Muze to byt jiny stroj, nebo jiny port na danem stroji. Pokud chceme napr. mirrorovat nas server na rychlejsi linku, muzeme ho nechat na tom samem stroji jako doposud a naopak prehodit DNS zaznam. Po teto akci bude nas www server na adrese www-orig.firma.cz:80.Na puvodni DNS jmeno www.firma.cz:80 umistime forwarder, kteremu rekneme, ze ma vsechny zadosti forwardovat na www-orig.firma.cz:80. Takze zadosti
se budou retezit nasledovne: UZIVATEL -> FORWARDER -> PUVODNI WWW SERVER
Nic na tom neni. Pote si jeste forwarder nakonfigurujte - zejmena dobu jak casto ma testovat stranky na zmenu. SoftwareV soucasne dobe umi delat Cachujici forwarder nasledujici programy:- BorderManager FastCache (Novell, komerce)
- Apache httpd (Apache group, freeware)
- Squid (kolektiv autoru, freeware)
- Smart Cache (Radim Kolar, free pro nekomercni pouziti)
Ktery si vybrat?
Apache je z techto produktu nejslabsi - neumoznuje nastavit expiraci podle masek URL a neumoznuje cachovat dynamicky generovane dokumenty - zasadne nepouzivat.Squid je lepsi - umoznuje nastavit expiraci podle masek URL, umoznuje cachovat dynamicky generovane dokumenty. Ma vsak nekolik nevyhod. Neumi delat vice nez jeden forwader (coz by zase tak nevadilo) a necachuje vsechny dokumenty (napr. obsahujici cookies a redirecty). Jeho nejvetsi nevyhoda pri provozovani mirroru je, ze pokud dostane zadost Reload od klienta tak vzdy refreshne stranku ze vzdaleneho serveru, coz u mirroringu dost vadi, protoze
to obvykle dele trva. Dalsi mensi nevyhodu spatruji v tom, ze neumi posilat stranky z cache, pokud originalni server zhavaruje. Smart Cache je nejlepsi. Vzhledem k tomu, ze umi cachovat vsechno at je ten objekt cachovatelny ci ne, muzete ji nastavit tak, aby cachovala i vysledky ruznych CGI scriptu (napr. hledacich) u kterych nevadi, ze uzivatel dostane par hodin stary vysledek. Umi ignorovat zadost klientu o reload stranek, zejmena
je to vhodne pokud mate na serveru Java applety, protoze ty vzdy JVM nacita pomoci pragma: no-cache. Umi delat forwarder pro vice serveru za pouziti hlavicky Host: - na rozdil od Squida to neni security hole, protoze vsechny takto sestavene URL jsou jeste kontrolovany a umi delat protokolacni soubory v zavislosti na masce URL. Nastavujeme SmartCache jako forwarder Tzv. nekomercni verze se da jako forwarder pouzit taky. Jedine, ale dost podstatne, omezeni je v tom, ze klient pripojici se k forwarderu musi bezet na stejnem stroji jako forwarder. Vlastni forwardovany server muze bezet kdekoliv.
Takze mate v ruce vlaste takove demo na hrani. Doporucena konfigurace je nasledujici:
Fail *
#nechceme, aby lide vyuzivali forwader k projlizeni jinych serveru
#nez naseho ciloveho. Takze muze byt i nas cilovy server za firewallem
#a forwader muze delat most.
Pass http://www-orig.firma.cz/*
#pouze tohleto dovolime
default_forward_for www.firma.cz
#pro ty, jejichz klienti neposilaji Host hlavicku, se pouzije tahle.
Redirect http://www.firma.cz/* http://www-orig.firma.cz/*
#vlastni premapovani
access_log http://www.firma.cz/* firma.log
#nejaky ten log
No a dale si nastavte expiraci, cachovatelnost atd. jak je libo. Napr.:
NoCaching */cgi-bin/*
default_refresh_pattern 60 180 0.30 5000
#reload povolime maximalne po hodine, dynamicky generovane stranky vydrzi
#v cache 3 hodiny.
pragma_no_cache 0
nastavujeme Squida
http_port 80
httpd_accel www-orig.firma.cz 80
httpd_accel_with_proxy on
#pokus se alespon neco nacachovat...
httpd_accel_uses_host_header off
#ne diky, diru nechceme.... Jak vidite, nic na tom neni. Konfigurace apache tu neni, protoze ten rozhodne nedoporucuji pro proxy, a forwarder uz vubec ne, pouzivat. Squid taky sice neni zadny cachovaci zazrak, ale rozhodne je o tridu lepsi a rychlejsi. Pokud pouzivate Squida jako forwarder, vypnete u vaseho WWW serveru posilani cookies.
| |