WordPress på Azure
WordPress är ett mångsidigt och populärt system för innehållshantering som används för att skapa webbplatser av alla storlekar, i flera syften. Från små personliga bloggar till storskaliga företagswebbplatser och e-handelsbutiker erbjuder WordPress en rad funktioner och anpassningar som passar olika behov. Men på grund av installationernas varierande storlekar och användningsfall har WordPress också unika värdkrav som är beroende av faktorer som trafikvolym och lagringsbehov.
Den här artikeln beskriver WordPress-distributioner i Azure. Den ger vägledning om vad du bör överväga och implementera för att säkerställa en säker, skalbar och kostnadseffektiv installation.
Allmänna säkerhets- och prestandatips för WordPress
På grund av dess överväldigande popularitet är WordPress ett mål för hackare. Webbplatser som körs på plattformen kan vara sårbara för säkerhetshot som skadlig kod och nätfiskeattacker. Följande tips kan hjälpa dig att hantera dessa risker genom att skapa en säkrare och mer högpresterande WordPress-installation.
Oavsett om du använder en virtuell dator (VM) eller Azure App Service för din värdarkitektur, eller om du använder någon annan lösning, gäller dessa tips.
Använda Azure Web Application Firewall
Brandväggen för webbaserade program hjälper till att skydda din webbplats mot vanliga webbaserade attacker. Det fungerar som ett filter mellan din webbplats och Internet. I den här kapaciteten övervakar brandväggen för webbprogram inkommande trafik och blockerar skadliga begäranden som kan utnyttja sårbarheter i webbplatsens kod. Brandväggen för webbaserade program skyddar din webbplats från en rad attacker, inklusive SQL-inmatningar, skript för flera platser (XSS) och förfalskning av begäranden mellan webbplatser (CSRF).
Du bör använda Brandvägg för webbprogram i Azure Front Door för att få ett centraliserat skydd för dina webbprogram. Azure Front Door är ett nätverk för innehållsleverans som hjälper användare över hela världen med snabb, tillförlitlig och säker åtkomst till dina programs statiska och dynamiska webbinnehåll. Genom att distribuera brandväggen för webbprogram i Azure Front Door kan du skydda dina webbtjänster mot vanliga sårbarheter och sårbarheter.
Ta bort oanvända plugin-program och teman
Du bör ta bort oanvända plugin-program och teman från WordPress-installationen. Det här steget är viktigt för att hjälpa till att skydda din WordPress-webbplats och optimera dess prestanda. Även ett plugin-program eller tema som du inte aktivt använder kan utgöra en säkerhetsrisk genom att tillhandahålla en startpunkt för hackare att utnyttja sårbarheter i inaktuell eller oavsiktlig kod. Dessutom kan många plugin-program och teman som är installerade på din webbplats sänka dess prestanda genom att öka belastningstiden och serverresursanvändningen.
Avlasta statiskt innehåll från PHP-processorn
För att minska belastningen på PHP-processorn bör du avlasta statiskt innehåll, till exempel bilder, videor och CSS-filer. Om du avlastar statiskt innehåll kan du optimera webbplatsens prestanda och minska serverbelastningen. När en användare besöker en webbplats bearbetar servern PHP-kod och genererar HTML-innehåll dynamiskt. Den här processen är resursintensiv. Statiskt innehåll ändras dock inte ofta, så du kan hantera statiskt innehåll direkt från ett serverfilsystem eller ett nätverk för innehållsleverans. Genom att avlasta dessa tillgångar kan du minska belastningen på serverns PROCESSOR- och RAM-minne. Den här konfigurationen resulterar i snabbare sidinläsningstider, bättre webbplatsprestanda och en bättre användarupplevelse.
Det finns också andra fördelar med att hantera statiska resurser från en nätverkstjänst för innehållsleverans, till exempel Azure Front Door. När du till exempel avlastar statiskt innehåll kan du minska svarstiden och öka webbplatshastigheten genom att placera servrar nära användarnas geografiska platser.
Kommentar
För att skydda ett ursprung med Azure Front Door med hjälp av en privat slutpunkt måste du använda Premium SKU för Azure Front Door. Mer information finns i Skydda ditt ursprung med Private Link.
Ogiltig innehållsleveransnätverkscache
För stora WordPress-installationer som använder ett nätverk för innehållsleverans, till exempel Azure Front Door eller Azure Content Delivery Network, måste du implementera logik för cache ogiltighet. När en ny händelse inträffar måste du ogiltigförklara cachen i innehållsleveransnätverket för den berörda sidan. Exempel på händelser är att publicera en ny artikel, uppdatera en befintlig sida och lägga till en kommentar. Ogiltighetslogiken måste hitta alla URL:er som ändringen påverkar. Mer specifikt måste logiken hitta och ogiltigförklara dynamiskt genererade sidor, till exempel kategorier och arkiv, i nätverkscachen för innehållsleverans. Med vissa installerade teman och plugin-program kan även en mindre ändring påverka varje sida.
Ett sätt att implementera identifieringslogik är att använda ett plugin-program som möjliggör manuell utlösande av cache-ogiltighet för alla URL:er. Men att ogiltigförklara alla URL:er på en gång kan leda till att trafiken ökar på Din WordPress-webbplats.
Aktivera tvåfaktorsautentisering
Tvåfaktorsautentisering ökar säkerheten för installationen och skyddar dina administratörskonton från obehörig åtkomst och attacker. Om du vill dra nytta av tvåfaktorautentisering kan du använda ett plugin-program, till exempel plugin-programmet för miniOrange-autentisering. Det här plugin-programmet innehåller bland annat ett sätt för dig att konfigurera Microsoft Authenticator som en tvåfaktorsautentiseringsmetod för användare som loggar in på din WordPress-webbplats som administratörer.
Inaktivera XML-RPC-åtkomst
XML-RPC är ett fjärrprotokoll som ger ett sätt för program från tredje part att interagera med webbplatsens server. Men det här protokollet är också ett vanligt mål för hackare som använder det för att starta råstyrkeattacker eller utnyttja sårbarheter i ditt innehållshanteringssystem. Om du använder Azure Front Door kan du inaktivera XML-RPC genom att konfigurera en neka-regel för URL:er med formatet /xmlrpc.php
.
Begränsa åtkomsten till administrationspanelen
Som standard är din WordPress-administrationspanel tillgänglig för alla med dina kontoautentiseringsuppgifter och rätt URL, som har formatet /wp-login.php
eller /wp-admin
. Som ett resultat kan hackare och andra skadliga aktörer försöka gissa dina autentiseringsuppgifter, utföra en sessionskapning, starta råstyrkeattacker eller utnyttja sårbarheter i WordPress för att få åtkomst.
Brandväggen för webbaserade program kan hjälpa till att förhindra vissa attacker, men många administratörer föredrar att begränsa åtkomsten till WordPress-administrationspanelen på nätverksnivå.
Du kan till exempel blockera åtkomst till privata URL:er i Azure Front Door. Du kan sedan använda Azure Application Gateway för att tillhandahålla intern åtkomst från ett privat nätverk som använder en topologi med nav och eker. Interna instanser av Application Gateway stöder brandväggsregler för webbaserade program och Azure Front Door-regler. Dessa regler hjälper till att skydda din WordPress-installation mot interna attacker. Om du kan tolerera risken för en intern attack kan du använda en intern instans av Azure Load Balancer i stället för Application Gateway. Load Balancer fungerar på nivå fyra i OSI-modellen (Open Systems Interconnection).
Ladda ned en Visio-fil med den här arkitekturen.
Vissa WordPress-plugin-program kräver att URL:er med formatet /wp-admin/admin-ajax.php
är offentligt tillgängliga och tas bort från den här neka-regeln.
Spara hemligheter i Azure Key Vault
För att säkerställa säkerheten för WordPress-distributioner i Azure rekommenderar vi att du lagrar hemligheter, till exempel databaslösenord och TLS- eller SSL-certifikat, i Key Vault. Den här molnbaserade tjänsten hjälper till att tillhandahålla säker lagring och hantering av kryptografiska nycklar, certifikat och hemligheter.
Key Vault hjälper dina auktoriserade program och tjänster att komma åt hemligheter på ett säkert sätt. Du behöver inte lagra dem i oformaterad text i din WordPress-containeravbildning eller i programkod.
Finjustera prestanda
För att optimera WordPress-prestanda bör du justera olika inställningar och använda plugin-program. Följande plugin-program kan vara användbara för felsökning av WordPress-installationer:
Frågeövervakaren ger en uppdelning av den tid som spenderas på varje SQL-fråga och andra åtgärder. Exempel är PHP-fel, hooks och åtgärder, blockredigeringsblock, kodade skript och formatmallar samt HTTP API-anrop.
Laps är ett plugin-program som visar prestandainformation om inläsning av WordPress-sidor. Den tillhandahåller en visuell sammanfattning som är enkel att inspektera och spårar automatiskt händelser som PHP-körning, kärnprocesser, plugin-inläsningar, temabelastningar, huvudslingor, sidofält, databasfrågor och nätverksbegäranden. Den här uppdelningen visar hur tid som spenderas på WordPress-sidan läses in.
Värdutmaningar för WordPress
Med WordPress-programarkitekturen finns det flera värdutmaningar, bland annat:
- Skalbarhet. En värdarkitektur måste kunna skalas ut under perioder med hög trafik.
- ReadWriteMany-lagring (RWX). Som standard lagrar WordPress alla statiska tillgångar, plugin-program och temakällkod i
/wp-content/
katalogen. Under en utskalning måste alla noder kunna läsa från och skriva till katalogen. - Lagringsklassen input/output operations per second (IOPS). WordPress består av över 1 000 små .php filer som PHP-processorn refererar till, läser in och kör under inkommande begäranden. Med vissa protokoll kan inläsning av många små filer öka omkostnaderna. Den övergripande prestandan är sedan långsammare än när en fil med samma totala storlek läses in. Därför måste lagringslösningen ha stöd för hög IOPS.
- Cache-ogiltighet. När det finns en ny aktivitet i programmet, till exempel när du publicerar en ny artikel, måste du göra cachen ogiltig för alla noder.
- Det är dags att skapa cacheminnet. För den första användaren av en viss nod kan svarstiden vara långsam tills cacheminnet har skapats.
WordPress-värdalternativ i Azure
WordPress kan köras på App Service, Azure Kubernetes Service (AKS) och Azure Virtual Machines. Storleken på installationen är en viktig faktor i den värd som du väljer. För små till medelstora installationer är App Service ett kostnadseffektivt alternativ. För större installationer bör du dock överväga AKS- eller VM-värdtjänster.
WordPress på App Service
Microsoft tillhandahåller en fullständigt hanterad lösning för att köra WordPress på App Service på Linux virtuella datorer. Detaljerad information finns i Skapa en WordPress-webbplats. Den här lösningen:
- Är utformad för att hjälpa dig att snabbt och enkelt distribuera en WordPress-installation.
- Är perfekt för små till medelstora WordPress-installationer.
- Ger skalbarhet, tillförlitlighet och säkerhet för Azure-plattformen utan behov av komplex konfiguration eller hantering.
- Utför automatiska uppdateringar, säkerhetskopior och övervakning för att säkerställa att webbplatsen alltid är tillgänglig.
Mer information finns i WordPress på App Service.
Lagringsintensiva arbetsbelastningar
Stora WordPress-installationer kan vara lagringsintensiva. I dessa scenarier bör du använda en lagringslösning med hög IOPS-klass och låg svarstid. Vi rekommenderar Azure NetApp Files. Azure NetApp Files har stöd för lagringsintensiva WordPress-distributioner. Den innehåller även extra funktioner som dataskydd, säkerhetskopiering och återställning, replikering mellan regioner och haveriberedskap.
För en containerdistribution av WordPress bör du använda AKS. Med Azure NetApp Files implementerar du lagring via en CSI-drivrutin (Kubernetes Container Storage Interface). Azure NetApp Files erbjuder ett ReadWriteMany
läge så att alla noder kan läsa från och skriva till samma lagring. Mer information finns i AKS WordPress-arkitektur.
Oföränderlig WordPress-container
En alternativ metod för traditionella värdmetoder är att distribuera WordPress till en oföränderlig container. Den här metoden har fördelar och nackdelar. Källkoden och alla resurser i oföränderliga containrar är fasta och kan inte ändras efter distributionen. Du måste göra alla ändringar, inklusive nya plugin-installationer eller WordPress Core-uppdatering, i en ny version av containeravbildningen. Även om den här metoden hjälper till att säkerställa konsekvens och förenklar återställningar måste du skapa en distributionspipeline för att göra ändringar. Dessutom kan oföränderliga containrar begränsas i de beständiga lagringsalternativ som de erbjuder. Du kan behöva utveckla en lösning för hantering av mediefiler och andra data. Trots dessa begränsningar ger oföränderliga containerdistributioner fördelar när det gäller säkerhet, skalbarhet och portabilitet.
Du kan distribuera en oföränderlig containerversion av WordPress på olika plattformar, inklusive Azure Container Apps, AKS och App Service med en anpassad containeravbildning. Du kan vara värd för containeravbildningen i Azure Container Registry.
Deltagare
Den här artikeln underhålls av Microsoft. Det har ursprungligen skrivits av följande medarbetare.
Huvudförfattare:
- Vaclav Jirovsky | Molnlösningsarkitekt
Övriga medarbetare:
- Adrian Calinescu - Sverige | Senior molnlösningsarkitekt
Om du vill se linkedin-profiler som inte är offentliga loggar du in på LinkedIn.
Nästa steg
Produktdokumentation:
- Vad är Azure Front Door?
- Vad är Azure Web Application Firewall?
- Om Azure Key Vault
- Vad är Azure Load Balancer?
- Vad är Azure Application Gateway?
- Vad är Azure Virtual Network?
- Vad är Azure Firewall?
- Vad är VPN Gateway?
Träningsmoduler:
- Introduktion till Azure Front Door
- Konfigurera Azure Load Balancer
- Implementera Azure Key Vault
- Introduktion till Azure Virtual Network