(Zřeknutí se odpovědnosti: Myslel jsem, že tato otázka by měla být položena na SuperUser, ale zdá se, že to nebylo správné místo. Doufám, že tato je vhodnější.)

Zkoumám několik možností pro nastavení a statický blogovací modul a migruji tam nějaký obsah pro některé blogy, které mám. Rád bych otestoval výkon těchto motorů a slyšel jsem skvělé věci Jekyll a Octopress.

Zajímalo by mě, jestli tento druh motorů by bylo vhodné pro těžké stránky, které jsou aktualizovány 20–30krát denně (nebo více) a každý den dostávají značné množství návštěv (řekněme počáteční hypotetické číslo: 1 milion unikátů za měsíc).

WordPress je fantastický CMS se spoustou potenciálu v každém aspektu, ale i když existují mezipaměti pluginů, jako je W3 Total Cache, které umožňují, aby se určité části blogu / časopisu chovaly staticky, závislost ostatních částí a především nutnost neustáleho přístupu k MySQL může blog učinit problematickým.

Vzhledem k tomu, že statické nástroje pro blogování nepotřebují databázi, zajímalo by mě, jestli by bylo bláznivé pokusit se jeden z nich přizpůsobit vydávat časopis, ve kterém by všechny články byly statické webové stránky a to by mělo komentáře založené například na Disqusu. Existují s tímto nápadem technické problémy?

Připomínaje mé myšlenky, to by byly klady a zápory:

Klady

  • Vše statické (kromě komentářů, Disqus tam)
  • Žádný přístup k databázi, pravděpodobně lepší časy načítání / odezvy

Nevýhody

  • Není mnoho pluginů (ano, Octopress nějaké má)
  • Přizpůsobení není tak snadné ani výkonné
  • Naplánovat příspěvky?
  • Dokumenty a komunita nižší než Wordpress, pokud potřebujete pomoc - jeden fantastický příklad;)

  • 1 @JMC: To je obrovský mýtus. Na WP se zaměřují hackeři, protože je to nejoblíbenější CMS na webu. Skutečné chyby zabezpečení WP jsou však velmi vzácné (na stejné nebo menší než ekvivalentní méně populární CMS). Hlavní důvod, proč jsou uživatelé WP hacknuti, je ten, že: 1.) používají jednu z mála verzí, které obsahují chybu zabezpečení; 2.) používají nezabezpečený plugin. Pokud používáte pouze pluginy z důvěryhodných zdrojů a udržujete své nastavení WP v aktuálním stavu, není používání WP větší než jakékoli jiné CMS.
  • Jsem s Lèse majesté, to se děje stejně v systému Windows, což je prostě populárnější a atraktivnější cíl pro útočníky. Dobře nakonfigurovaný WordPress se správcem, který se stará, by neměl být zranitelnější než jakýkoli jiný CMS nebo platforma.
  • @Lese a javipas - děkujeme, že jste upozornili na to, proč to může být noční můra zabezpečení. WP je cílené, protože je to nejpopulárnější (což znamená, že většina hackerů jde za ním) a neustálé udržování nejnovější verze vám vždy ponechává obrovský cíl. Většina webových aplikací, které jsem použil, nemá vždy aktuální problém. Proto to může být noční můra zabezpečení. Neřekl, že je nemožné zajistit.
  • @JMC: Dost spravedlivé. Ale zatímco zabezpečení prostřednictvím neznáma může mít v praxi znatelný účinek. Je také velmi nebezpečné, když podporuje laxní přístup k bezpečnosti. Sám jsem byl v minulosti touto chybou kousnut. Statisticky to může trvat déle, než budou odhalena zranitelná místa v méně populárních nebo vlastních CMS, ale po dlouhou dobu (zejména na stránkách s vysokým provozem) je pravděpodobnost jejich odhalení stále 100%. U obchodních webů bych tedy jako součást vaší bezpečnostní politiky ani nezapomínal na nejasnosti.
  • @ Lèse, můj tón nemusel být jasný, ale vlastně jsem ti děkoval za zdůraznění důvodů, protože jsem se nezabýval hlavními příčinami. Během posledních dvou let jsem provedl hodně čištění databáze wordpressu pro lidi, kteří hackli blogy wp (spamové odkazy vložené do článků a celkové změny prezentace na displeji prostřednictvím vložených prvků iframe). Byl také jeden, který se změnil na bankovní phishingové stránky. Jedno společné vlákno mezi každým blogem bylo, že se jednalo o zastaralou verzi.

Poměrně mnoho stránek s vysokým profilem / provozem přešlo na statické generátory webů, jako je Jekyll a Octopress. I když statické místo má určité výhody týkající se výkonu, nasazení a zabezpečení, existuje také mnoho nevýhod. Existuje důvod, proč je dnes většina webů na webu dynamická a proč většina CMS není statickými generátory webů.

Hlavní nevýhody, které musíte vzít v úvahu, jsou:

Čas generování stránek

Neexistuje nic jako oběd zdarma. Generátory statických stránek se nezbavují generování a zpracování stránek, které dělají běžné CMS; jednoduše přesměrují tento úkol na jiný čas / místo. Stále je třeba udělat stejnou práci, ale místo toho, aby tato práce byla rozdělena na stovky nebo tisíce požadavků, generátor to dělá najednou. To může vašim návštěvníkům ušetřit vzácné milisekundy, ale může se to opravdu zkrátit v době generování webu.

Jak se váš web zvětšuje (nebo pokud převádíte web, který již má značné množství stránek), vaše generační časy pro věci, jako je provádění změn rozložení (navigace, nadpis, zápatí, obsah postranního panelu atd.), Generování značky nebo archivovat stránky atd. začíná zabírat stále více času. Důrazně doporučuji přečíst si účet tohoto webmastera o jeho přepínači, než se pustíte sami.

Pokud tedy máte velký web, který závisí na včasných aktualizacích, možná se budete muset zbavit funkcí, jako jsou značky, související příspěvky, archivní stránky atd., Takže generování webu při každém vytvoření webu vám nezabere hodinu. pošta.

Naštěstí, pokud doba zpoždění aktualizace obsahu neovlivní váš web, můžete pravděpodobně automatizovat proces tak, aby autoři obsahu jednoduše odeslali své příspěvky do aktualizační fronty a aktualizační skript zpracovává generování webu na pozadí bez dozoru. Může to ještě trvat hodinu, než bude příspěvek hotový, ale nikoho to neztrácí čas.

Statické stránky mají velmi omezenou funkčnost

Na svůj web můžete vložit nestatické součásti, ale tím se zbavíte mnoha výhod provozování statického webu a také to vyžaduje správu webu z více umístění. A některé funkce jednoduše nelze poskytnout prostřednictvím integrované služby SaaS, např. živá správa obsahu, JS-free + komentáře přátelské k vyhledávacím strojům, správa uživatelů atd.

Další funkce, jako je fazetové vyhledávání, dynamická navigace (např. nejoblíbenější příspěvky, poslední stránky, značení komunity atd.), webové služby (SOAP / XML-RPC), správa relací atd. se stávají opravdu obtížnými a nepříjemnými při implementaci. V zásadě byste si měli být jisti, že nechcete rozšířit svůj web nad rámec základního blogu.


Naštěstí však většina blogů umět mají své základní funkce implementované na statickém webu. Nevýhody tedy nejsou tak závažné jako u jiných typů webů (např. Komunitní nebo členské stránky, obchody s elektronickým obchodem atd.); takže je to opravdu jen o zvážení nákladů vs. přínosů. Tady opravdu není správná nebo špatná odpověď a záleží to stejně na osobních preferencích, jako na požadavcích stránek.

Pokud je však vaším hlavním motivem přechodu na statický generátor webu výkon, měli byste nejprve prozkoumat další možnosti, jako například:

  • vykládání statických aktiv na lehký webový server, jako je nginx + doména bez souborů cookie
  • používání celostránkového ukládání do mezipaměti (což po prvním požadavku na stránku bude v podstatě jako mít statickou stránku)
  • ukládání do mezipaměti dotazů, aby se požadavky DB staly zřídka
  • pomocí ukládání do mezipaměti na straně klienta
  • konsolidace zdrojů, aby se minimalizovaly požadavky HTTP
  • zvýšení paralelního stahování

Pokud nastavíte dynamický web správně, mohl by se potenciálně rychleji načítat než statický web, který používá spoustu vložených souborů JS třetích stran pro věci, jako jsou komentáře, zpětné sledování atd. Takže jak John navrhuje ve vašich komentářích, měli byste vlastně porovnejte svůj web a zjistěte, kde jsou skutečná úzká místa výkonu. Je možné, že konsolidace CDN nebo CSS / JS bude mít pro váš web větší výkonnostní výhodu než přepnutí na statický web, který přidá ještě více propojených závislostí JS a třetích stran.

  • Moc vám děkuji za pochopení Lèsse majesté, vaše body jsou opravdu rozumné. Používal jsem konfiguraci Nginx + Varnish + Varnish + Memcache - s pluginy mezipaměti, ano - a výkon je opravdu pěkný, ale trochu jsem cítil, že by mohly být užitečné statické blogovací služby. Čas generování stránky je pro časopis problém, protože nechcete čekat hodinu na zveřejnění horkých zpráv, ale existují i ​​jiné možnosti (Pelican, skrivr?). Každopádně může být ukládání do mezipaměti ve skutečnosti opravdu užitečné a s dobrým CDN a dalšími nápady, jako je ta vaše, pravděpodobně na mé případové studii zvítězí možnost WP. Děkuji.

Nechápu to. Pokud provádíte správné ukládání do mezipaměti, co je třeba dotazovat v databázi pořád, jak říkáte? A je to něco, co musíte použít? Pokud ano, nebudete jej muset používat na statickém webu?

1 milion unikátů za měsíc je jako 24 unikátů za minutu. To není těžké zatížení ani pro VPS střední třídy. Zvláště pokud ukládáte věci do mezipaměti. A vždy můžete použít něco jako nginx, abyste zefektivnili obsluhu statických částí (obrázky atd.)

  • Unikátní návštěvníci nepředstavují odhad provozního zatížení, který je reprezentován přístupy / zobrazeními stránky. Web s 1 milionem jedinečných návštěvníků za měsíc může mít 1M přístupů za měsíc nebo 2B přístupů za měsíc, v závislosti na vzorcích používání. Také předpokládáte stálé zatížení provozu. Většina webů má období špičky a mimo zatížení, kdy je nad / pod průměrným provozním zatížením. Mít server, který zvládne vaše průměrné zatížení, není příliš užitečné, pokud se vaše stránka během špičkových zatížení neustále zhroutí.
  • Fair point john, asi jsem měl dát nějaké údaje o odhadu pro zobrazení stránek, což by pro časopis, jako je ten, o kterém mluvím, byl asi dvakrát nebo třikrát větší než unikáty. Jak možná víte, online časopis není sociální síť: uživatelé kontrolují jednou nebo dvakrát, ale ne nutně 20krát denně. Také ne všechno lze uložit do mezipaměti, takže použití statické pro všechno by bylo zajímavé, myslím, i když nevím, jestli by bylo tak zajímavé obětovat výhody WP.
  • @ Lèse majesté: Všechny vaše body jsou samozřejmě správné, ale k provedení konkrétní analýzy potřebujete konkrétní vstup, který nemáme. Můžeme tedy udělat jednoduchý průměrný odhad, abychom si to udělali. V praxi, pokud váš web není Digg'd, vaše zatížení během špičky nebude řádově větší než průměr.
  • 1 @javipas: Když provádíte ukládání do mezipaměti na celou stránku, vše, na čem záleží, se uloží do mezipaměti :) Stačí udělat pěkné nastavení (APC / Memcached atd.). Mnoho pluginů to dokáže, tady je jeden z méně známých, protože předpokládám, že jste provedli svůj výzkum: petermolnar.eu/open-source/wordpress/wp-ffpc - vytvořím demo stránku a zdůrazním ji pomocí " falešný provoz při používání různých pluginů k nalezení toho nejlepšího, co vyhovuje mým konkrétním potřebám.
  • 1 @john: Myslím, že jste do jisté míry v pořádku. Mnoho webů rozhodně nemá extrémní špičky / mimo špičku. Velká část webů však získává 90% svého provozu buď během běžné pracovní doby, nebo v „primárním“ čase procházení po práci. Přesto souhlasím s vaším názorem na předčasnou optimalizaci.

Pracoval pro vás: Charles Robertson | Chcete nás kontaktovat?