Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| schaalbare-website [2017/05/01 18:51] – [Don'ts:] matthias | schaalbare-website [2026/05/27 14:01] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ===== Do's en dont's voor een schaalbare website ===== | ===== Do's en dont's voor een schaalbare website ===== | ||
| + | \\ | ||
| + | {{: | ||
| + | \\ | ||
| Do's | Do's | ||
| Line 8: | Line 10: | ||
| - Voor grote files zoals video' | - Voor grote files zoals video' | ||
| - Gebruik voor de front-end een performance benchmark-tool | - Gebruik voor de front-end een performance benchmark-tool | ||
| - | - Gebruik optimalisaties voor de backend | + | |
| + | | ||
| Line 15: | Line 18: | ||
| - Uitgaande calls naar andere websites | - Uitgaande calls naar andere websites | ||
| - de applicatieserver alle inkomende requests af laten handelen. | - de applicatieserver alle inkomende requests af laten handelen. | ||
| - | |||
| - | Voor de liefhebbers hebben wij een wat meer in-depth uitleg over [[.: | ||
| + | Voor de liefhebbers hebben wij een wat meer in-depth uitleg over [[.: | ||
| + | \\ | ||
| + | Specifiek voor Wordpress heeft Nginx een [[https:// | ||
| ==== (front-)Proxies ==== | ==== (front-)Proxies ==== | ||
| Line 46: | Line 50: | ||
| puur beperkt door de CPU snelheid van het systeem waar de worker op draait. Als een worker request moet doen naar een database of andere website is die ' | puur beperkt door de CPU snelheid van het systeem waar de worker op draait. Als een worker request moet doen naar een database of andere website is die ' | ||
| - | ===== Don'ts ===== | + | ===== Dont's ===== |
| **Inefficiente Database queries.** | **Inefficiente Database queries.** | ||
| Line 90: | Line 94: | ||
| Door zoveel mogelijk werk aan de proxies te laten wordt al een hoop gewonnen. | Door zoveel mogelijk werk aan de proxies te laten wordt al een hoop gewonnen. | ||
| Zorg ervoor dat plaatjes direct door de proxies uitgeserveerd kunnen worden, | Zorg ervoor dat plaatjes direct door de proxies uitgeserveerd kunnen worden, | ||
| - | zonder dat dit door HTTP hoeft. | + | zonder dat dit door PHP hoeft. |
| Idem voor platte html, stylesheets e.d. | Idem voor platte html, stylesheets e.d. | ||
| + | Daarom zorgen wij er standaard voor dat files met de extensies *.gif, *.html, *.htm, *.jpg, *.png, *.css, *.js, *.txt, *.swd, *.flv, *.xml, *.ico, *.pdf, *.gz, *.mp3 door de proxy uitgeserveerd worden. | ||
| + | |||
| + | === Data pre-renderen === | ||
| + | Data die wel wijzigt, maar voor alle bezoekers hetzelfde is kan | ||
| + | ge-pre-rendered worden. Dat wil zeggen dat er een achtergrondproces | ||
| + | ("een cronjob" | ||
| + | rendered en ergens neerzet waar deze als statische data uitgeserveerd | ||
| + | kan worden. Op die manier hoeft deze data niet voor elke indiciduele | ||
| + | bezoeker apart gerendered te worden, wat veel belasting scheelt. | ||
| === File Caching + herschrijfregels === | === File Caching + herschrijfregels === | ||
| Line 121: | Line 134: | ||
| Goed werkende HTTP Caching is mogelijk vanaf apache-2.4, maar het is onze ervaring dat Nginx de caching nog effectiever afhandelt. | Goed werkende HTTP Caching is mogelijk vanaf apache-2.4, maar het is onze ervaring dat Nginx de caching nog effectiever afhandelt. | ||
| * De [[# | * De [[# | ||
| + | |||
| + | === Gebruik voor de front-end een performance benchmark-tool === | ||
| + | |||
| + | Op [[https:// | ||
| + | |||
| + | [[http:// | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | Belangrijke kanttekeningen voor deze tools: alleen de frontend performance wordt gemeten; niet de backend. De schaalbaarheid wordt hier niet mee gemeten. Sterker nog er worden aanbevelingen gedaan die de schaalbaarheid verslechteren zoals mod_gzip/ | ||
| + | |||
| + | === Gebruik optimalisaties voor je CMS === | ||
| + | Bijvoorbeeld: | ||
| + | * [[https:// | ||
| + | Er zijn voor veel populaire CMS'en modules beschikbaar die plaatjes kunnen optimaliseren of resizen, caching kunnen doen en andere optimalisaties. | ||
| === Memcached === | === Memcached === | ||
| Line 126: | Line 154: | ||
| zeer geschikt om zware database queries in te cachen, om zo de load | zeer geschikt om zware database queries in te cachen, om zo de load | ||
| op de database te verminderen en daarmee de workers sneller te maken. | op de database te verminderen en daarmee de workers sneller te maken. | ||
| + | |||