Julkaistu

WP-Palvelussa hyödynnetään tehokkaasti välimuistia monella tasolla. Käyttäjien oman selaimen välimuistin ja mahdollisen välityspalvelimen lisäksi myös edustapalvelimilla sekä WordPressissä itsessään on käytössä välimuisteja. Joissakin tapauksessa myös teemaan tai lisäosiin on lisätty omia välimuistitekniikoita.
Muutamat asiakkaamme törmäsivät hiljattain ongelmaan, jossa sivuston toiminta häiriintyi satunnaisesti siten, että sivu latasi itseään yhä uudelleen ja uudelleen. Nykyaikaiset selaimet huomaavat tällaisen virheen helposti, ja ne näyttävät käyttäjälle ilmoituksen ”Sivusto ei uudelleenohjaudu asianmukaisesti. Palvelin tässä osoitteessa uudelleenohjaa pyyntöjä loputtomasti.” tms. Tällaiset tilanteet näkyvät meillä myös valvonnassamme, ja saamme tällaisista tapauksista hälytyksen lähes välittömästi ongelman alkaessa.

Alussa ongelman oletettiin johtuvan WordPressin välimuistista, koska ongelma saattoi poistua yhtä nopeasti kuin alkoikin – lisäksi välimuistin tyhjennys korjasi tilanteen aina väliaikaisesti. Kun ongelma kuitenkin alkoi toistumaan yhä tiheämmin ja aina eri sivustoissa, ryhdyttiin asiaa tutkimaan tarkemmin. Sivustojen sekä edustapalvelimien lokeja käytiin lävitse ja suljettiin pois eri vaihtohtoja. Ongelma oli myös toistettavissa curl-työkalun avulla, jonka avulla saatiin täsmälliset tiedot palvelimen palauttamista vastauksista. Kun curl:ia käytettiin esimerkiksi näin: curl -IL -H Pragma:no-cache wp-palvelu.fi, sivusto latautui aina oikein. Tämän tiedon valossa saatiin todenettua, että vika todella oli välimuistissa.
Seuraavaksi käytiin lävitse ongelmallisten sivustojen yhteisiä piirteitä – oliko WordPress päivittynyt oikein, mitä teemoja ja lisäosia oli käytössä, ja olivatko ne päivittyneet oikein. Huomattiin, että kaikissa ongelmasivustoissa yhteinen piirre oli käytössä oleva Redirection-lisäosa (https://redirection.me/), joka on suosittu lisäosa uudelleenohjausten tekemiseen WordPressista käsin. Koska lisäosa on avointa lähdekoodia, kävimme lävitse viimeaikaisia muutoksia, ja huomasimme, että lisäosaan oli luotu oma välimuistitekniikka lisäosan toiminnan nopeuttamiseksi. Ominaisuus oli aktivoitu automaattisesti ja oletusasetuksena oli säilyttää tiedot välimuistissa tunnin ajan. Testasimme ominaisuuden poistoa niissä sivustoissa, joissa ongelma esiintyi, ja tämä osoittautui toimivaksi ratkaisuksi.

Kaikilla asiakkaillamme on käytössä WP CLI -työkalu (https://seravo.com/docs/management/use-wordpress-with-wpcli/). Sen avulla muutos saatiin ajettua kaikille asiakkaillemme, joilla lisäosa on käytössä. Tämä saatiin tehtyä käyttämällä lisäosan omia funktioita wp eval -käskyllä näin:
wp eval '$options = red_get_options();$options["redirect_cache"] = -1;red_set_options($options);'
Kyseisillä funktiokutsuilla luetaan ensin muistiin nykyiset asetukset, asetetaan välimuisti pois päältä ja kirjoitetaan muutokset lisäosan omaa tallennustoimintoa käyttäen.

Kommentoi

Lue lisää

Kategoriassa: Kehittäjille

PHP 8.3 saatavilla Seravon WP-palvelussa

PHP 8.3 on nyt saatavilla Seravon WP-palvelun sivustoilla.

22 helmikuun, 2024

DKIM, SPF ja DMARC: Varmista sähköpostien perillemeno DNS-tietueilla

Takkuaako sähköpostien perillemeno? Tarkistamalla domainiltasi löytyvät DNS-tietueet varmistat, etteivät viestisi päädy roskapostiin.

20 helmikuun, 2024

PHP 8.3 on julkaistu

PHP 8.3 on julkaistu. Mitä uutta siinä on ja miten pitää PHP-versio ajan tasalla?

23 marraskuun, 2023

WP-CLI v2.8.0 on saapunut

Pienten viivästyksien jälkeen WP-CLI komentorivityökalusta on julkaistu uunituore versio eilen, 31.5.2023. Uusi versio tuo mukanaan useita bugikorjauksia ja se on […]

1 kesäkuun, 2023

PHP 8.2 pian saatavilla

PHP 8.2 on pian kehittäjien saatavilla Seravon WP-palvelussa. Suosittelemme sivustoilla käytettäväksi PHP8:aa – ainakin toistaiseksi!

3 helmikuun, 2023

PHP-päivitykset Seravon WP-palvelussa

Vuonna 2022 Seravon WP-palvelussa siirryttiin käyttämään oletusarvoisesti PHP 8.0:aa, eli se on automaattisesti käytössä uusilla sivustoilla. Myös PHP 8.1 on ollut palvelussamme saatavilla, ja 8.2 pian käytettävissä.

25 tammikuun, 2023