Koti » Miten rakennetaan edullisesti WordPress-blogi sadoille lukijoille?

Miten rakennetaan edullisesti WordPress-blogi sadoille lukijoille?

Varmasti monia lukijoita kiinnostaa tarkemmin miten blogista saa edullisesti nopean ja kestämään paljon liikennettä sivulla. Testasin kuormitustestillä kuinka monta kävijää sivuni kestää ja päästiin hyvin parin tuhanteen samaanaikaiseen vierailijaan.

Tässä artikkelissa avaan palvelimen ominaisuuksia ja sen konfiguraatiota ja WordPressin konfiguraation. Nämä ovat keskeisiä asioita tehdessä sivusta nopean. Kaikki ominaisuudet eivät toimi kaikkien sivujen kanssa, joten suosittelen kokeilemaan varoen.

Palvelin

Lähdetään aluksi katsomaan palvelinta. Palvelimella tulee olla riittävästi kapasiteettia pyörittämään sivua ja uusinta tekniikkaa. Vanha tekniikka on hidasta, joten varmistetaan että palvelimella uusinta tekniikkaa.

Käytän sivustolla UpCloudin nopeita virtuaalipalvelinta, jota pystyn muokkaamaan miten haluan. Tällä hetkellä palvelimessa on 1 CPU, 2Gt muistilla ja 50GB SSD-levyä. Käyttöjärjestelmänä on Ubuntu 18.04 LTS.

Webpalvelimena valitsin OpenLiteSpeedin, joka on Open Source-versio LiteSpeed webpalvelimesta. OpenLiteSpeed etuna on LSCache, joka on minusta todella hyvä välimuistilaajennus WordPressille.

Palvelimella lisäksi on ajossa PHP7.4 ja MariaDB 10.

Suojatakseni palvelintani olen sallinut vain HTTP ja HTTPS pelkästään CloudFlaren IP-avaruudesta. Palveimen SSH-yhteys kannattaa sallia vain omista IP-osoitteista tai pelkästään Suomesta välttyäkseen skannereilta. Toinen vaihtoehto on vaihtaa SSH-portti muuksi kuin oletus 22.

ModSecurity – Web Application Firewall

Palvelimeen on asennettu ModSecurity suojaamaan sivua mahdollisilta hyökkäyksiltä. Se torjuu tekokkaasti mm. XSS:t ja SQL-injektiot. ModSecurityn käyttö ei ole helppoa ja mikäli sinulla ei ole aikaisempaa kokemusta tämän käytöstä suosittelen sen tilalle esimerkiksi CloudFlare Pro-pakettia joka tarjoaa vastaavanlaisen WAF-ratkaisun.

WordPress

WordPress on palvelimen jälkeen hyvä katsoa kuntoon, jotta siitä saadaan mahdollisimman kevyt ja nopea. Tähän auttaa paljon Googlen PageSpeed-työkalu, joka kertoo kattavasti mikä hidastaa.

Google PageSpeed Insight-työkalu antaa osviittaa miksi sivusi on hidas.
  • Laajennuksia eli plugineita on vähemmän kuin 20 kappaletta asennettuna. Poista turhat laajennukset sillä nämä hidastavat toimintaa. Mikäli esimerkiksi käytössäsi on analytiikka-laajennus niin mielummin korvaa lisäämällä analytiikka koodi lapsiteeman footer.php tiedoston loppuun ennen </body> tagia. Näin säästyy paljon PHP:llä ajettavaa kuormaa joka nopeuttaa sivuston latausta.
  • Käytä vain laadukkaita ja toimivia laajennuksia ja teemoja. Itsellä käytössä blogissani Neve, joka on yksinkertainen ja hyvin mobiiliin optimoitu teema. Älä käytä turhan raskaita teemoja.
  • Päivitä WordPress, sen laajennukset ja teemat aina uusimpaan versioon. Mikäli teema tai laajennus ei saa päivityksiä pitkään aikaan on hyvä korvata se jollakin muulla.
  • Käyttämäsi kuvat eivät ole suurempia kuin 1920×1080 kokoisia. Pienennä kuvat mieluiten ennen kuin lataat ne sivustolle.

Kun nämä on tehtynä on hyvä lähteä parantamaan WordPressiä asentamalla LSCache-laajennus. Ota laajennus ja välimuisti käyttöön.

LiteSpeed Cache asetukset

Nämä asetukset eivät sovi kaikille sivuilla, mutta luettelen mitä asetuksia on käytössäni

  • Minify CSS/JS/HTML
  • CSS/JS HTTP/2 Push
  • Critical CSS
  • DNS Prefetch (kaikille osoitteille mihin sivu ottaa yhteydessä. Tämän tarkoituksena nopeuttaa DNS pyyntöjä)
  • Remove Query String
  • Optimize Images Automatically
  • Convert to WebP
  • Optimization Cron
  • Image WebP Replacement
  • Ota käyttään CloudFlare CDN-välilehdessä.

CloudFlare

CloudFlare on yksi maailman suurimpia CDN-palveluntarjoajista, jonka välimuistin avulla hyvin tehdyn WordPress-sivu voi palvella helposti tuhansia vierailijoita samaanaikaisesti. Ilmainen CloudFlare riittää suurimmalle osalle käyttäjistä ja se on käytässä blogissani.

CloudFlare Firewall

CloudFlare tarjoaa maksutta viisi palomuuri sääntöä ja näiden avulla voi helposti suojata sivuasi. Tässä muutamia esimerkkisääntöjä joita voit hyödyntää WordPress-sivullasi. Säännöt asetetaan CloudFlaren hallintanäkymästä -> Firewall -> Firewall Rules.

Ensimmäisellä säännöllä olisi tarkoitus estää pääsy WordPressin PHP-tiedostoihin suoraan. Usein mm. teemojen ja laajennuksissa on haavoittuvuuksia ja verkossa olevat skannerit yrittävät päästä niihin käsiksi.

(http.request.uri.path contains "/wp-content/" and http.request.uri.path contains ".php") or (http.request.uri.path contains "/wp-includes/" and http.request.uri.path contains ".php")

Toisella sääntö estää yleisesti estää pyyntöjen tekemistä sivuille, jolla tarkoitus vahingoittaa verkkosivua. Tämä sääntö sopii oikeastaan kaikille verkkosivuille.

(http.request.full_uri contains "<?php") or (http.cookie contains "<?php") or (http.request.full_uri contains "../") or (http.request.full_uri contains "..%2F") or (http.request.uri contains "/autodiscover/") or (http.request.uri contains "/wpad.") or (http.request.full_uri contains "webconfig.txt") or (http.request.full_uri contains "vuln.") or (http.request.uri.query contains "base64") or (http.request.uri.query contains "<") or (http.request.uri.query contains "%3C") or (http.request.uri.query contains "%3c") or (http.request.uri.query contains "¼script¾") or (http.cookie contains "<script") or (http.referer contains "<script") or (http.request.uri.query contains "$_GLOBALS[") or (http.request.uri.query contains "$_REQUEST[") or (http.request.uri.query contains "$_POST[") or (http.request.uri.path contains ".env")

Kolmannella säännöllä on tarkoitus estää wp-loginin sivulle pääsyn vain Suomesta. Useimmat skannerit ja kirjautumisyritykset tehdään ulkomailla.

(http.request.uri.path contains "wp-login" and ip.geoip.country ne "FI")

Mikäli sivulle on tarkoitus päästä ulkomailta, niin toinen paras tapa on käyttää esimerkiksi CloudFlaren Access ominaisuutta tai yksinkertaista HTTP Auth.

CloudFlaren hallintapanelista näkyy usein botteja yrittämässä tunkeutua sivulleni. Yksinkertaisten sääntöjen avulla tälläiset yritykset estetään

 

Avainsanat:

Kommentoi