netmag logo

__________Reklama_____________________

 Archiv  
 1996
1997
1998
1999
2000
 
 
  Oblasti 
 Bazar
Consulting
Copyright
FAQ
Lamers List
LiterNet
O NetMagu
Peering v CR
Postav si PC
Pridej clanek
REKLAMA
Ruzne
Services
Tisk. zpravy
Webhosting
 
 
 Mame radi  
 
Cesky

CZIS
Grafika
HW server
Hysteria
Linux.cz
Lupa
Manis
Mobil
Nas ISP
Netacik
Neznalek
Penguin.cz
Peterka
Pruvodce
Redmeat
Root.cz
SIS
Svet h-ware
Technet
 
Anglicky
Antionline
Geocrawler
Hackernews
Hackers-s.
Hackersclub
Linuxberg
Linuxlinks
Linuxstart
l0pht
Posli SMS
Rootshell
Sec. focus
Two cows
 
Lechtive
Links 1
Links 2
Links 3
Links 4
Links 5
Playmates
 
Zaciname s Linuxem
Kde sehnat
Mikroservis
Myslik
Skolicky
U-ground
 
 
 Volna mista  
  Brigady
Byrokracie
Consulting
Programatori
Spravci siti
Zbytek

Zpet na
INDEX
 
  by Radim Kolar  
 

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

  1. 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.
  2. 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 vypada

Dosavadni 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.

Software

V soucasne dobe umi delat Cachujici forwarder nasledujici programy:
  1. BorderManager FastCache (Novell, komerce)
  2. Apache httpd (Apache group, freeware)
  3. Squid (kolektiv autoru, freeware)
  4. 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.
 

 Reakce na clanek: 
 

Jmeno:
E-mail:
Text:

 

__________Reklama_____________________
Telenor Internet