Jak vyresit tisice malych HTML/CSS pro CDN? rubrika: Programování: Jiné

4 Tomasz Cieńciała
položil/-a 19.5.2015

Zdravim,

resim takovy problem:

Maly projekt nahozeny zkusebne na VPS - bude delat neco jako servovani vizitek pro ruzne ucely (hlavne HTML/CSS), ktere si dotycny muze vytvorit a nasledne embedovat na svoji stranku. Jelikoz nekdo to da na stranku, na ktere bude 1 osoba tydne, a nekdo to nahodi na stranku, kde bude 1000 osob denne, resim ted, jak by slo odlehcit server, ktery bude tyto male html/css predavat dal a jak to udelat, aby se to na te strance zobrazovalo rychle a spolehlive.

Reseni je postaveno na roru, vim ze tam jde cachovat staticky obsah, aby se to nemuselo pokazde vytvaret znovu, nicmene spise by mne zajimalo jakym optimalnim zpusobem do toho zapojit CDN. Tim padem server by danou vizitku vytvoril jednou a pak by to vzdy dorucovalo CDNko. Jenze co jsem kontaktoval podporu napr. maxcdn a cdn77, tak se mi nepodarilo poradne vysvetlit co chci :)

Na cdn77 je 50 GB prostoru zdarma, na maxcdn jde zase vytvorit push zone. Mne zajima, zda by to slo udelat takovym zpusobem, aby ta mala HTML/CSS soubory sly dorucovat pomoci CDN na ty stranky uzivatelu, kteri si to tam embeduji (server neni moc vykonny, tak by se z toho zhroutil rychle a stavet x serveru pro servovani statickeho obsahu se mi zda drahe a pomale) a zda by to slo udelat tak, aby to bylo vzdy aktualni. Moc nechapu, jakym zpusobem muzu zabezpecit, aby uzivatel, ktery si svoji vizitku pozmeni aby se zobrazovala na strankach vzdy v aktualni podobe (a jak to resi CDN). Vim, ze muze se resetovat cely cache CDN, ale to je blbost delat to pri kazdem nahrani souboru. Pripadne je mozno, aby prve zobrazeni dane vizitky vytvoril server, a pak uz si to 'prebere' CDNko a pak provadi validaci, zda nebyla provedena nova verze?

Snad jsem to popsal srozumitelne :)

Mate nejaky napad/zkusenost/rady?

Diky

Komentáře

  • ic : dost podobná situace jako gravatar.com 8.6.2016
odkaz
7 messa
odpověděl/-a 8.6.2016
 
upravil/-a 8.6.2016

CDN je cache. Když přijde HTTP request na CDN, tak CDN se podívá, jestli tuto URL (nebo podle kterého klíče se kešuje) už nemá u sebe uloženou, pokud ano, tak vrání nakešovaná data, pokud ne, přepošle požadavek na tvé servery a zapamatuje si odpoveď pro příště.

Je to cache, nic víc. Vůbec neplatí, že by CDN k tobě pro obsah sáhla jen jednou a pak už to jelo čistě z CDN. CDN servery si obvykle nesdílejí kešovaný obsah mezi sebou (možná ano v rámci lokality, ale už ne napříč kontinenty). Po nějaké době neaktivity ten obsah CDNka zahodí, aby se uvolnila paměť pro aktivnější věci. Takže furt k tobě sem tam nějaké requesty skrz CDN budou chodit. Jen jich bude ideálně řádově méně než bez CDN.

CDN je možno napojit na tvůj server, a nebo lze i na statické úložiště typu Amazon S3. Ty by ses pak už jen staral o to, aby na S3 byly aktuální soubory a nejlépe měly i nastavené správné kešovací a etag hlavičky. Zkus zauvažovat nad tímto přístupem, pak není potřeba mít ani server (ve smyslu HTTP server), stačí něco, co se bude starat o aktuálnost dat na S3.

"Na cdn77 je 50 GB prostoru zdarma" - CDN77 neznám, tuhle větu moc nechápu, ale zní to, že prostě mají taky nějaké úložiště ala S3. Může se to jinak jmenovat, ale v principu to je všechno stejné, jako jsem popsal výše.

Komentáře

  • Hape : Ano, těch 50 GB u CDN77 je velikost úložiště poskytovaného zdarma k objednávce služeb CDN. 10.6.2016

Pro zobrazení všech 5 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.