Vyrovnávací WWW server (v angličtině WWW proxy cache) je zařízení, které se snaží zmenšit objem dat přenášených službou WWW po Internetu. Používá k tomu osvědčenou technologii vyrovnávacích pamětí: zapamatuje si odpověď na dotaz, a pokud se v dohledné době stejný dotaz zopakuje, poskytne rovnou uloženou odpověď. Dochází tak k významné úspoře objemu přenášených informací, která při dostatečně dimenzovaném serveru překračuje 50%. Pro vyrovnávací servery se nejčastěji používá program Squid. Zařazení vyrovnávacího serveru však přináší i jistá rizika. Ta nejzávažnější jsou dvě:
Z hlediska vyrovnávacího serveru je nejsnazší je-li součástí odpovědi z WWW serveru hlavička Expires. V takovém případě je platnost dotyčného objektu jasně stanovena. Drtivá většina odpovědí však tuto hlavičku postrádá. Tehdy není podle HTTP doba aktuálnosti objektu omezena a je ponecháno ke zvážení vyrovnávacímu serveru, jak dlouho jej bude ukládat.
Squid při žádosti o určitý objekt provede níže popsané kroky (tzv. test čerstvosti), aby stanovil jeho stav. Může být dvojí. Buď je objekt čerstvý a v takovém případě jej rovnou odešle klientovi. Druhým možným výsledkem je, že objekt posoudí jako prošlý. V takovém případě je považován za neaktuální a nelze jej odeslat. Squid musí ověřit u původního WWW serveru, zda nedošlo k jeho změně. Proto pošle podmíněný dotaz (opatřený hlavičkou If-Modified-Since) a obdrží buď potvrzení platnosti nebo změněnou verzi objektu. V každém případě zjistí, jak si dotyčný objekt stojí právě teď a co má poslat klientovi. Důležitým údajem pro posouzení čerstvosti objektu je jeho Stáří. Jedná se o dobu, která uplynula od uložení objektu do vyrovnávací paměti do současnosti. S touto hodnotou se pracuje prakticky ve všech krocích algoritmu.
Další významné informace pocházejí z konfiguračních příkazů refresh_rate, které jsou obsaženy v souboru squid.conf. Podle lokátoru objektu se zjistí, který z těchto příkazů použít. V něm pak Squid najde tři údaje:
Test čerstvosti je vyjádřen posloupností kroků. V každém z nich dojde k vyhodnocení určitých podmínek, a pokud dojde k jejich naplnění, Squid rozhodne o čerstvosti objektu. V opačném případě pokračuje dalším krokem. Uplatní se tedy první krok, jehož podmínka je splněna:
Popsaný algoritmus pro posuzování čerstvosti objektů je velmi rozumný. Především jeho závěrečný krok, kdy dlouho nezměněné objekty budou déle čerstvé, dost věrně odráží skutečnost. Navíc lze kritéria stanovit odlišně pro různé lokátory. Takže například obrázkům můžete nastavit vyšší Procento než běžným stránkám.
Klasický způsob spolupráce s vyrovnávacím serverem je otázkou konfigurace klienta. V některých případech však takový přístup nemusí být optimální. Řada uživatelů si možná vyrovnávací server ve svém WWW prohlížeči nenastaví. Jestliže chceme i tyto uživatele zahrnout do působnosti vyrovnávacího serveru, můžeme zvolit transparentní řešení. Zde se na straně klienta nic nekonfiguruje a vše se odehrává bez aktivní spolupráce a často i bez vědomí uživatele. O přesměrování WWW provozu se zpravidla stará směrovač (zpravidla ten, přes nějž je síť připojena k Internetu). Podle konfiguračních pravidel poznává WWW dotazy a přesměrovává je k vyřízení na vyrovnávací WWW server. Typická pravidla spočívají v tom, že se přesměrovává provoz směřující na TCP port 80, což je standardní port služby WWW. Základní výhodou transparentních vyrovnávacích serverů je bezpracné zvýšení uživatelské populace, která server využívá. Nemusí se spoléhat na konfiguraci ze strany uživatelů. Výsledkem je efektivnější využití připojení k Internetu.
Rubem této příjemné vlastnosti je, že před transparentním vyrovnávacím serverem není úniku, což v některých případech může vést k nekorektnímu chování doposud bezproblémové WWW služby. Uveďme tři nejčastěji se vyskytující případy problémů "způsobených" transparentním vyhledávacím serverem a způsoby jejich řešení:
Počítače provozující WWW cache jsou umístěny po jednom v lokalitách Plzeň, České Budějovice, Liberec, Brno, Ostrava a dva v Praze. Jde o počítače s operačním systémem Linux RedHat 5.1. Jako software, který obstarává vlastní chod vyrovnávacího serveru, byl zvolen program Squid. S tímto programem lze jednoduše realizovat i transparentní cache. Jsou úspěšně provozovány například v Ostravě, Liberci a Českých Budějovicích. Toto řešení ovšem klade velké požadavky na centrální směrovač, proto se jej ve větších městech nepodařilo realizovat.
V loňském roce bylo firmou Cisco uvolněno řešení transparentních vyrovnávacích serverů Cisco Cache Engine. Tři tyto vyrovnávací servery jsou připojeny na hraničním směrovači autonomního systému TEN-34 CZ a vykrývají požadavky těch klientů, kteří k WWW serverům nepřistupují prostřednictvím sítě vyrovnávacích serverů založených na programovém vybavení Squid. Z vyhodnocení poměru datových toků z/do Cisco Cache Engine se průměrná úspora pohybuje v rozmezí 22% až 35%, přičemž nižší hodnota platí pro dny pracovního klidu a vyšší hodnota pro dny pracovní.
Ve stávající konfiguraci jsou Squid cache servery a Cisco Cache Engine provozovány paralelně s tím, že nevyřízené požadavky klientů používajících Squid cache server již nejsou předávány na Cache Engine. Squid cache servery v současné době obsluhují jednu pětinu datového toku WWW provozu, zbývající čtyři pětiny jsou vybavovány na Cache Engine Farmě.
[1] | Závěrečná zpráva o řešení projektu TEN-34 v roce 1998 |
[2] | Dokumenty vzniklé při realizaci Vyrovnávacích serverů v TEN-34 |