Autor | Zpráva | ||
---|---|---|---|
LastHunter Profil * |
#1 · Zasláno: 4. 1. 2008, 17:19:12
Dobrý den,
právě vytvářím novou verzi jednoho většího portálu a hodilo by se mi cacheování výstupu. Jelikož v cacích jsem absolutní nováček, nevím jak na to. Pokud jsem to správně pochopil, jedná se o zmenšení zátěže především na MySQL server, protože výsledky dotazů se např. 1x za minutu uloží do cache a celou tu minutu se budou výstupy stránek brát odtamtud a MySQL bude "umírat nudou". Co jsem provedl: V PHP napsal do jednoho z includovaných skriptů (před začátek jakéhokoli výstupu): header("Cache-Control: store, cache"); header("Pragma: cache"); Do .htaccess jsem napsal: <IfModule mod_expires.c> ExpiresActive On ExpiresDefault A60 ExpiresByType image/gif A3600 ExpiresByType image/jpg A3600 ExpiresByType image/jpeg A3600 ExpiresByType image/png A3600 ExpiresByType text/css A3600 ExpiresByType text/javascript A3600 ExpiresByType application/x-shockwave-flash A3600 ExpiresByType text/html A60 </IfModule> (z jednotlivých řádků je doufám patrné, jak často chci jednotlivé prvky aktualizovat) Nyní by podle mé teorie, pokud nechám danou stránku vypsat time() a zmáčknu F5, daný údaj by se neměl aktualizovat, aktualizovaný by se měl ukázat až při prvním reloadnutí po minutě od prvního přístupu. Mám pravdu? Jenomže aktuální time() se ukazuje pokaždé. To samé s výpisy z DB - zobrazím si "cachovanou" stránku, změním třeba nadpis nějakého článku, zmáčknu F5 na cachované stránce a nový nadpis se ukáže hned, ne až za minutu. Kde dělám chybu? Díky :) |
||
Leo Profil |
#2 · Zasláno: 4. 1. 2008, 17:42:11
Podle me je F5 neco jinyho nez proste vyzadani stranky, prohlizec pri F5 posila uz v pozadavku hlavicky, ktere moznost pouziti kesovane verze omezuji. Pokud mate Firefox, kouknete se na komunikaci klient-server pres doplnek Live HTTP Headers, Leo
|
||
djlj Profil |
#3 · Zasláno: 4. 1. 2008, 17:47:16
LastHunter
To, cos popsal, je cachování na straně uživatele. Pro cachování na straně serveru potřebuješ vhodná rozšíření do apache a v mysql se dá přímo nastavit, jak dlouho se mají výsledky dotazů držet v paměti. |
||
LastHunter Profil * |
#4 · Zasláno: 4. 1. 2008, 17:50:50
Diky, v tom F5 to cele bylo :)
BTW: Opravdu se tim ulehci mysql serveru? A zalezi na tom, jestli je mezi klientem a serverem nejaka proxy cache nebo jestli ma klient vypnutou cache v prohlizeci? Pochopil jsem to spravne, ze vlastni cache ma uz sam HTTP server (aby se zaridilo to, ze vsichni uzivatele uvidi to same) ? Nebo nic takoveho neni a pokud ma uzivatel vypnutou cache v prohlizeci a neni na ceste zadna proxy, tak se stranky necachuji a uzivatelovi se generuje pokazde nova verze? |
||
LastHunter Profil * |
#5 · Zasláno: 4. 1. 2008, 17:52:24
djlj: Aha, diky, tim odpovidas na moje otazky v prispevku pod tebou :) Mohl bys mi nahodit nektera klicova slova pro Google, podle ceho mam hledat a zprovoznovat? Na vyraz web cache jsem nachazel pouze tyto veci okolo HTTP hlavicek, tudiz jsem si myslel, ze to je jedina varianta.
|
||
Leo Profil |
#6 · Zasláno: 4. 1. 2008, 17:54:16
Webserver cache mit muze, ale casto nema, neni to vychozi stav. Pak jeste muzete udelat kesovani do souboru vy sam, v PHP napriklad pres cache-lite, nedavno se to tady resilo, Leo
|
||
LastHunter Profil * |
#7 · Zasláno: 4. 1. 2008, 18:06:32
U Apache je to mod_disk_cache a mod_mem_cache nebo něco úplně jiného?
|
||
LastHunter Profil * |
#8 · Zasláno: 4. 1. 2008, 18:33:42
Takže už jsem si našel, že stačí mod_cache a mod_mem_cache. Jak se ovládá, co to bude cachovat a co ne? Čte to HTTP hlavičky nebo je to potřeba ovládat nějak jinak? (co se bude cacheovat do paměti serveru?)
|
||
Leo Profil |
#9 · Zasláno: 4. 1. 2008, 18:42:40
Netusim, nikdy jsou to nenastavoval, nicmene jeste to souvisi s mod_proxy, Leo
|
||
Časová prodleva: 16 let
|
0