Bugi Redirection-lisäosassa

Kirjoitettu: 23.3.2018 Päivitetty: 28.8.2018

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

Simo Kemppainen

Hae WP-palvelu.fi:stä

Kategoriat

Lue myös

WordPress 5.0 ilmestyy itsenäisyyspäivänä

4.12.2018

Kun alunperin marraskuun lopulle kaavailtu WordPress 5.0 viivästyi, useammassa kuin yhdessä WordPressin parissa työskentelevässä yrityksessä eläteltiin toiveita, että julkaisu siirtyisi […]

Suuria PHP-muutoksia odotettavissa joulukuussa

23.11.2018

PHP:n tulevan 7.3-version on määrä ilmestyä joulukuussa. Aiemmin tällä viikolla ilmestyi viimeisin ennakkoversio 7.3.0RC6,  jonka oletetaan myös olevan viimeinen ennen […]

Miksi kannattaa valita WooCommerce

14.11.2018

WooCommerce on maailman suosituin verkkokauppa-lisäosa WordPressille. Se on käytössä yli neljällä miljoonalla sivustolla, se on helppokäyttöinen, suoraan WordPressin kanssa yhteensopiva […]