Optimera WordPress med Larn och W3 Total Cache

Denna handledning följer upp Installera WordPress i Amazon Cloud, som visar hur du optimerar din webbplats med caching.

Om du är värd för WordPress, är det lämpligt att implementera någon form av cache-lösning. Oavsett om du vill köra din blogg i en ekonomisk mikroinstans hos Amazons Cloud (AWS) eller förvänta att din blogg får stor skala eller trafikspetsar, kommer caching att vara avgörande för att hantera prestanda. Cachning kan också bidra till att förbättra din Google Page Speed ​​som påverkar din sökmotor ranking.

Beroende på webbplatsens trafik och komplexiteten i ditt WordPress-tema kan prestanda faktiskt vara ganska långsam på AWS. Min rekommendation är att kombinera användningen av open source Larncache med den gratis W3 Total Cache (W3TC) plugin. 

Larn är en cache som lagrar kopior av sidor för användare som inte är inloggade (de flesta läsare är inte). När förfrågningar kommer in på din server returnerar Larnish dessa förkonstruerade sidor snarare än att kräva Apache, PHP och WordPress för att bygga om sidan för varje förfrågan. Som trafikskalor kan ombyggnaden av varje sida genom WordPress-stacken bokstavligen krascha din server. Senare kan W3 Total Cache ställas in för att regelbundet förverka sidor på din webbplats så att de alltid är redo för Lack.

Notera: Det här är också en bra anledning att överväga en extern kommentar plugin som Disqus snarare än inbyggda WordPress kommentarer. Disqus JavaScript är cacheable. Om dina kommentarer loggar in på din WordPress-webbplats kommer caching att användas mindre ofta och din skalbarhet för dina mest aktiva besökare kommer att minska kraftigt.

Kraften hos Varnish är dramatisk när intresset för din webbplats spikar. Jag har framgångsrikt kört min egen webbplats med denna konfiguration med en liten Amazon-instans för cirka 14,95 dollar per månad med framgångsrikt hantering av många utseenden på BoingBoing, Slashdot et al.

Om du vill lära dig mer om caching, dess fördelar och W3TC, läs Ahmad Awais introduktion till caching. 

Installera Lack Cache

Larncache är en cache-modul för Linux. Vi ställer in Lack för att lyssna på HTTP (web) trafik på port 80 med Apache bara lyssna på Larn på port 8080. När Larnish behöver en sida som ska byggas manuellt kommer den att överföra begäran till Apache port 8080.

Det här kan vara lite förvirrande först - men ja, vi flyttar i huvudsak Apache bakom kulisserna. Lack kommer att fungera som ytterdörr på port 80 för alla dina webbförfrågningar. Apache kommer att fungera som en bärande roll för Lack på port 8080. Det finns ingen offentlig trafik på port 8080, endast privata önskemål från Larn. Om du är nyfiken på hur det här handlar om AWS-säkerhetsgrupper, behöver du inte öppna port 8080.

För att komma igång måste vi installera Varnish på vår förekomst:

sudo apt-get installer lack

Redigera Apache ports.conf-fil för att lyssna på port 8080:

sudo nano /etc/apache2/ports.conf

Så här ska det se ut:

Lyssna 8080

Redigera din Apache-webbplatsens konfigurationsfil för att svara på port 8080:

sudo nano /etc/apache2/sites-available/wordpress.conf

Ändra VirtualHost-raden från *: 80 till *: 8080

Du kan behöva ändra din Apache-standardplats för att lyssna på port 8080 eller inaktivera den:

sudo a2dissite 000-default

Flytta originalfilerna till Varnish-konfigurationen till din hemkatalog som säkerhetskopior (om du bestämmer dig för att granska dem senare):

sudo mv / etc / default / lack ~ / default-lack-old sudo mv /etc/varnish/default.vcl ~ / varnish-default-vcl.old

Byt ut Larns standardkonfiguration med filen som finns tillgänglig här. Du kan använda kopiera och klistra in. 

sudo nano / etc / default / lack

Därefter ersätter du Varnish VCL-konfigurationen med härkomstfilen här (igen kopiera och klistra in).

Varning: Det kan hända att du får VCL-fel när du försöker starta om Larn om du inte ordentligt behåller radbrytningar när du klistrar. Radbrytningarna kan vara svåra att upptäcka, så granska det noggrant. Om det finns fel när du startar om Larn, är det ganska bra att berätta vilket linjenummer du vill titta på.

sudo nano /etc/varnish/default.vcl

Nu, låt oss starta om Apache och Larn:

sudo service apache2 omstart sudo service lack restart

Kom ihåg att om du får VCL-fel vid denna tidpunkt kan det bero på brutna radbrytningar från att klistra in i Varnish default.vcl-filen.

Besök din webbplats på http://yourdomain.com och allt bör börja arbeta med Varnish. För andra gången laddar du en statisk sida, det borde bli betydligt snabbare.

Installera W3 Total Cache 

W3 Total Cache är ett enastående WordPress-plugin. Det är gratis och ger en enorm prestationsoptimering för din webbplats. Du kan lära dig mer om W3 Total Cache på dess plugin-plats.

Logga in på din WordPress-administratörssida på http://yourdomain.com/wp-admin med användarnamnet och lösenordet du konfigurerade under installationen. Välj Plugins -> Add New från menyn till vänster på sidorna. Sök efter W3 Total Cache.

På grund av sin makt och sofistikering har W3 Total Cache ett stort antal inställningar som kan verka överväldigande. Nedan ger jag några rekommenderade inställningar som gör det lättare att komma igång.

Bli inte överväldigad. Börja med de allmänna inställningarna som visas nedan och gå därifrån. Om du är intresserad av att starta snabbare, Jag har lämnat instruktioner för att hämta mina standardinställningar och importera dem (visas längre fram nedan).

Alternativt erbjuder W3 Total Cache betalt installation och support från $ 150 och uppåt. Du kan nå dem via dess plugin Dashboard-sida eller deras hemsida. Det här är ett bra plugin så jag mår bra om att rekommendera dem. Jag har haft lite erfarenhet av sitt betalda stöd och det är generellt bra. Du kan också vilja se över W3 Total Cache-installationsöversikt och vanliga frågor på pluginwebbplatsen för mer information.

På hög nivå rekommenderar jag att du aktiverar följande inställningar, som jag detaljerar mer detaljerat nedan:

  • Sida Caching: Caches-sidor för snabbare lastning och effektivare leverans (separat från Lack).
  • minify: Krympar och kombinerar JS- och CSS-filer för snabbare laddning och effektivare leverans.
  • Objekt Cache: Snabbar upp generering av innehåll med WordPress.
  • Browser Cache: Korrekt taggar innehåll så att webbläsarklienter minimerar nedladdningar av sidor.
  • Omvänd proxy: Instruktioner W3TC för att rensa Lack-cachen när inlägg, sidor, et al. uppdateras.
  • Amazon CloudFront CDN: Försäkrar leverans av statiska filer och bilder snabbt, tillförlitligt och geografiskt nära dina besökare.
  • Diverse: Använd en sitemapindexfil för att förhandsgranska högprioritetssidor.

Installera stödkomponenter

Innan vi konfigurerar W3 Total Cache, låt oss installera och aktivera ett antal Linux-komponenter som det kommer att kräva. Återigen, koppla till din förekomst och utför följande steg:

sudo apt-get installera php5-dev php5-memcache memcached php-pear build-essential php5-tidig php5-curl apache2-dev php-apc

Redigera din php.ini-fil för att aktivera memcache:

sudo nano /etc/php5/apache2/php.ini

I avsnittet Dynamiska tillägg lägger du till raderna nedan:

extension = apc.so extension = memcache.so

Berätta Apache att aktivera dessa moduler och starta om det:

sudo a2enmod skriva om sudo a2enmod löper sudo a2enmod rubriker sudo service apache2 starta om

Redigera din wp-config.php-fil för att aktivera caching:

sudo nano /var/www/wordpress/wp-config.php

Lägg till följande WP_CACHE-definition ovanför stoppredigeringsraden:

definiera ('WP_CACHE', true); / * Det är allt, sluta redigera! Glad bloggning. * /

Granskar konfigurationsstatus

Vid den här tiden är det användbart att besöka W3TC-pluginpanelen och kontrollera att alla lämpliga komponenter är aktiva. Men först måste vi aktivera Fancy Permalinks för URL-format, vilket optimerar vår webbplats för indexering av sökmotorer. Från WordPress Admin Dashboard väljer du Inställningar -> Permalinks, väljer Dag och Namn och klickar på Spara ändringar. 

Sedan, klicka på Prestanda -> Dashboard från vänster sidofält och klicka sedan på Kompatibilitetskontroll. Det borde se ut så här:

Notera: du kan spara lite tid om du väljer ett tema och installerar de andra plugins du planerar att använda innan du slutar resten av konfigurationsprocessen för W3 Total Cache. Om du ändrar teman och lägger till plugins kommer du sannolikt att behöva rena och retesta dina W3 Total Cache-inställningar.

Allmänna Inställningar

W3TC fungerar vanligtvis bra med standardinställningarna. Så måste vi först och främst konfigurera sidan Allmänna inställningar och inte gå in i varje enskilt funktionsområde.

Besök sidan W3TC Allmänna inställningar. Klicka på Prestanda -> Allmänna inställningar från vänster sidofält. Vi kan utföra hög nivå här uppställd men då gör vi också mer detaljerad inställning på individuella inställningssidor. Jag lämnar av (omarkerad) "Växla alla caching-typer på eller av (i taget)" i den allmänna rutan.

Aktivera sidcache med Opcode Alternativ PHP Cache (APC):

Aktivera Minifiera med följande inställningar. Jag använder manuellt läge eftersom minifiera kan bryta vissa teman om dina inställningar är för aggressiva (men ditt valda tema kan fungera bra):

Jag lämnar avmarkerad / avdatabaskapsling eftersom detta endast rekommenderas om du inte aktiverar Objekt Caching.

Aktivera objektcache:

Aktivera webbläsarens cache:

Aktivera omvänd proxy:

Konfigurera W3TC för att regelbundet rensa Lackcache från 127.0.0.1 (localhost).

Sid Cache Inställningar

Klicka på Prestanda -> Sidcache i den vänstra sidofältet. Bläddra ner till rutan Cache Preload. Aktivera "Bläddra automatiskt till sidcachen". Ange din webbadress för webbplatskarta. 

Notera: Du måste ha installerat Bättre WordPress Google XML Sitemaps plugin innan detta kommer att fungera ordentligt.

Om du använder en CAPTCHA på kontaktformulär, vill du inkludera sökvägen till dessa sidor i felutskottet. Caching en CAPTCHA kommer att bryta funktionen. Bläddra ner till rutan Avancerad inställning. Lägg till din filväg t.ex. kontakter här:

User Agent Groups

Eftersom mitt tema är lyhörd, cachar jag mobil- och surfplattmedelsagenter separat. Med andra ord crasar Larnkopior kopior av olika responsiva layouter på min webbplats. När en mobilanvändare kommer till webbplatsen får de en specifik fil vs när en stationär användare anländer. Om ditt innehåll på webbplatsen är dynamiskt mottagligt (till exempel endast ändringar i Javascript och CSS) behöver du inte göra det här.  

Om du vill göra det här aktiverar du höga och låga användaragentsgrupper:

Referreringsgrupper

Jag aktiverar även Referrer Grupper för sökmotorer:

Minifiera inställningar

Minify komprimerar din HTML, JS och CSS-kod och kombinerar filer när det är möjligt. Detta påskyndar leverans av dina sidor och minskar bandbredd. Det kan emellertid ibland bryta temakoden.

Det kan hända att du måste justera inställningarna för ditt valda tema. Jag fann att genom att stänga in CSS-minifiering, fungerar mitt tema bra. Från den vänstra sidofältet klickar du på Prestanda -> Minifiera:

Importera exempelinställningar (valfritt)

Om du föredrar att börja importera min inställningsfil följer du dessa steg:

  1. Ladda ner exempels inställningsfil
  2. Besök de allmänna W3TC-inställningarna, t.ex. Vänster sidofält, Prestanda -> Allmänna inställningar och bläddra till det nedre området med Importera / Exportera inställningar (se nedan).
  3. Förutom importkonfigurationen, klicka på Välj fil och välj filen för exempelsättningsinställningar som du hämtade. Klicka sedan på uppladdning.
  4. Bläddra bland dina W3TC-inställningar och se till att de ger mening för din WordPress-webbplats.
  5. Det kan hända att du måste anpassa inställningarna för din webbplats efter importen t.ex. Google PageSpeed, Amazon CloudFront CDN, etc..

Använda Amazon CloudFront CDN

Det är definitivt värt att aktivera en CDN. CDN-enheten är till stor hjälp för att minska den totala belastningen på din server. Till exempel kan W3TC omdirigera begäranden för bilder och statiska filer som skript och css till Amazons CDN.

Om du vill göra det följer du anvisningarna på min webbplats för aktivering av Amazon CloudFront. Jag använder för närvarande Pull-metoden (min handledning beskriver den äldre Push-metoden).

Övervakning av prestanda

Det finns många olika sätt att övervaka serverns prestanda. W3TC stödjer integration med New Relic-övervakningsmodulen. W3TC erbjuder en widget för widgeten för Google Page Speed ​​och det finns också ett Google Page Speed-plugin för WordPress. Dessa kommer att vara till hjälp för dig när du utvärderar dina bloggar på pågående prestanda.

Grattis!

Du borde nu vara den stolta ägaren till ett fullt optimerat, självhäftat WordPress-ställe i Amazon Cloud med Larn och W3 Total Cache. Jag hoppas att du har hittat den här två delserien till hjälp. Vänligen meddela oss vad som fungerade bra för dig och vad som inte gjorde det.