WordPress in Azure

Azure App Service
Azure Front Door
Azure Kubernetes Service (AKS)
Azure Web Application Firewall
Azure Private Link

WordPress is een veelzijdig en populair inhoudsbeheersysteem dat wordt gebruikt om websites van elke grootte te maken, voor meerdere doeleinden. Van kleine persoonlijke blogs tot grootschalige bedrijfssites en e-commerce winkels, WordPress biedt een scala aan functionaliteiten en aanpassingen om aan verschillende behoeften te voldoen. Vanwege de verschillende grootten en gebruiksvoorbeelden van de installaties heeft WordPress echter ook unieke hostingvereisten die afhankelijk zijn van factoren zoals verkeersvolume en opslagbehoeften.

In dit artikel worden WordPress-implementaties in Azure behandeld. Het biedt richtlijnen voor wat u moet overwegen en implementeren om te zorgen voor een veilige, schaalbare en kosteneffectieve installatie.

Algemene tips voor beveiliging en prestaties van WordPress

Vanwege zijn overweldigende populariteit is WordPress een doelwit voor hackers. Websites die op het platform worden uitgevoerd, kunnen kwetsbaar zijn voor beveiligingsrisico's zoals malware en phishing-aanvallen. De volgende tips kunnen u helpen deze risico's aan te pakken door een veiligere en beter presterende WordPress-installatie te maken.

Of u nu een virtuele machine (VM) of Azure App Service gebruikt voor uw hostingarchitectuur of dat u een andere oplossing gebruikt, deze tips zijn van toepassing.

Azure Web Application Firewall gebruiken

Web Application Firewall helpt uw website te beveiligen tegen veelvoorkomende aanvallen op het web. Het fungeert als een filter tussen uw website en internet. In deze capaciteit bewaakt Web Application Firewall binnenkomend verkeer en blokkeert schadelijke aanvragen die misbruik kunnen maken van beveiligingsproblemen in de code van uw website. Web Application Firewall helpt uw website te beschermen tegen een reeks aanvallen, waaronder SQL-injecties, cross-site scripting (XSS) en cross-site request forgery (CSRF).

U moet Web Application Firewall in Azure Front Door gebruiken om gecentraliseerde beveiliging voor uw webtoepassingen te krijgen. Azure Front Door is een netwerk voor inhoudslevering dat gebruikers over de hele wereld snelle, betrouwbare en veilige toegang biedt tot de statische en dynamische webinhoud van uw toepassingen. Het implementeren van Web Application Firewall in Azure Front Door helpt uw webservices te beschermen tegen veelvoorkomende aanvallen en beveiligingsproblemen.

Ongebruikte invoegtoepassingen en thema's verwijderen

Verwijder ongebruikte invoegtoepassingen en thema's uit uw WordPress-installatie. Deze stap is belangrijk om uw WordPress-website veilig te houden en de prestaties te optimaliseren. Zelfs een invoegtoepassing of thema die u niet actief gebruikt, kan een beveiligingsrisico vormen door hackers een toegangspunt te bieden om beveiligingsproblemen in verouderde of niet-onderhouden code te misbruiken. Als er veel invoegtoepassingen en thema's op uw website zijn geïnstalleerd, kunnen de prestaties ook worden vertraagd door de laadtijd en het gebruik van serverbronnen te verhogen.

Offload statische inhoud weg van de PHP-processor

Als u de belasting van uw PHP-processor wilt verminderen, moet u statische inhoud, zoals afbeeldingen, video's en CSS-bestanden, offloaden. Het offloaden van statische inhoud helpt de prestaties van websites te optimaliseren en de serverbelasting te verminderen. Wanneer een gebruiker een website bezoekt, verwerkt de server PHP-code en genereert de HTML-inhoud dynamisch. Dit proces is resource-intensief. Statische inhoud verandert echter niet vaak, zodat u statische inhoud rechtstreeks vanuit een serverbestandssysteem of een netwerk voor inhoudslevering kunt leveren. Door deze assets te offloaden, kunt u de belasting van de CPU en het RAM-geheugen van uw server verminderen. Deze configuratie resulteert in snellere laadtijden van pagina's, verbeterde websiteprestaties en een betere gebruikerservaring.

Er zijn ook andere voordelen aan het leveren van statische resources vanuit een netwerkservice voor inhoudslevering, zoals Azure Front Door. Wanneer u bijvoorbeeld statische inhoud offloadt, kunt u de latentie verminderen en de websitesnelheid verhogen door servers dicht bij de geografische locaties van gebruikers te plaatsen.

Notitie

Als u een origin wilt beveiligen met Azure Front Door met behulp van een privé-eindpunt, moet u de Premium-SKU van Azure Front Door gebruiken. Zie Uw oorsprong beveiligen met Private Link voor meer informatie.

Ongeldige inhoudsleveringsnetwerkcache

Voor grote WordPress-installaties die gebruikmaken van een netwerk voor inhoudslevering, zoals Azure Front Door of Azure Content Delivery Network, moet u logica voor ongeldige cache implementeren. Wanneer er een nieuwe gebeurtenis optreedt, moet u de cache in het netwerk voor inhoudslevering ongeldig maken voor de betreffende pagina. Voorbeelden van gebeurtenissen zijn het publiceren van een nieuw artikel, het bijwerken van een bestaande pagina en het toevoegen van een opmerking. De ongeldigheidslogica moet alle URL's vinden waarop de wijziging van invloed is. De logica moet dynamisch gegenereerde pagina's, zoals categorieën en archieven, zoeken en ongeldig maken in de cache van het netwerk voor inhoudslevering. Bij sommige geïnstalleerde thema's en invoegtoepassingen kan zelfs een kleine wijziging van invloed zijn op elke pagina.

Een eenvoudige manier om detectielogica te implementeren is door een invoegtoepassing te gebruiken waarmee handmatige activering van cache-ongeldigheid voor alle URL's mogelijk is. Maar het ongeldig maken van alle URL's tegelijk kan leiden tot een piek in het verkeer op uw WordPress-site. Zie azure-cache leegmaken en hook implementeren op GitHub voor een voorbeeld van logica voor cache-ongeldigheid voor Content Delivery Network.

Schakel tweeledige verificatie in

Tweeledige verificatie verhoogt de beveiliging van uw installatie en helpt uw beheerdersaccounts te beschermen tegen onbevoegde toegang en aanvallen. Als u wilt profiteren van tweeledige verificatie, kunt u een invoegtoepassing zoals de invoegtoepassing voor miniOrange-verificatie gebruiken. Deze invoegtoepassing biedt onder andere een manier om Microsoft Authenticator te configureren als een tweeledige verificatiemethode voor gebruikers die zich als beheerder aanmelden bij uw WordPress-site.

XML-RPC-toegang uitschakelen

XML-RPC is een extern protocol waarmee toepassingen van derden kunnen communiceren met de server van uw website. Dit protocol is echter ook een veelvoorkomend doelwit voor hackers, die het gebruiken om beveiligingsaanvallen te starten of misbruik te maken van beveiligingsproblemen in uw inhoudsbeheersysteem. Als u Azure Front Door gebruikt, kunt u XML-RPC uitschakelen door een regel voor weigeren in te stellen voor URL's met de indeling /xmlrpc.php.

Toegang tot het beheervenster beperken

Standaard is uw WordPress-beheervenster toegankelijk voor iedereen met uw accountreferenties en de juiste URL, die de indeling /wp-login.php of /wp-adminheeft. Als gevolg hiervan kunnen hackers en andere kwaadwillende actoren proberen uw referenties te raden, een sessiekaping uit te voeren, beveiligingsaanvallen te starten of kwetsbaarheden in WordPress te misbruiken om toegang te krijgen.

Web Application Firewall kan helpen sommige aanvallen te voorkomen, maar veel beheerders geven er de voorkeur aan om de toegang tot het Beheerpaneel van WordPress op netwerkniveau te beperken.

U kunt bijvoorbeeld de toegang tot privé-URL's in Azure Front Door blokkeren. Vervolgens kunt u Azure Application Gateway gebruiken om interne toegang te bieden vanuit een particulier netwerk dat gebruikmaakt van een hub-and-spoke-topologie. Interne exemplaren van Application Gateway ondersteunen Web Application Firewall-regels en Azure Front Door-regels. Deze regels helpen uw WordPress-installatie te beschermen tegen interne aanvallen. Als u het risico van een interne aanval kunt tolereren, kunt u een intern exemplaar van Azure Load Balancer gebruiken in plaats van Application Gateway. Load Balancer werkt op laag vier van het OSI-model (Open Systems Interconnection).

Architectuurdiagram met geblokkeerde openbare toegang tot een WordPress-beheervenster. Een VPN in een hub-and-spoke-topologie biedt interne toegang.

Een Visio-bestand van deze architectuur downloaden.

Voor bepaalde WordPress-invoegtoepassingen moeten URL's met de indeling /wp-admin/admin-ajax.php openbaar toegankelijk zijn en uit deze regel voor weigeren worden verwijderd.

Geheimen opslaan in Azure Key Vault

Om de beveiliging van WordPress-implementaties in Azure te waarborgen, raden we u aan geheimen, zoals databasewachtwoorden en TLS- of SSL-certificaten, op te slaan in Key Vault. Deze cloudservice biedt beveiligde opslag en beheer van cryptografische sleutels, certificaten en geheimen.

Key Vault helpt uw geautoriseerde toepassingen en services om veilig toegang te krijgen tot geheimen. U hoeft ze niet op te slaan in tekst zonder opmaak in uw WordPress-containerinstallatiekopieën of in toepassingscode.

Prestaties afstemmen

Als u de prestaties van WordPress wilt optimaliseren, moet u verschillende instellingen afstemmen en invoegtoepassingen gebruiken. De volgende invoegtoepassingen kunnen handig zijn voor het opsporen van fouten in WordPress-installaties:

  • Query Monitor biedt een uitsplitsing van de tijd die is besteed aan elke SQL-query en andere acties. Voorbeelden zijn PHP-fouten, hooks en acties, blokeditorblokken, niet-gebruikte scripts en opmaakmodellen en HTTP-API-aanroepen.
  • Laps biedt een uitsplitsing van hoe tijd wordt besteed aan het laden van WordPress-pagina's.

Hostinguitdagingen van WordPress

Met de WordPress-toepassingsarchitectuur zijn er verschillende hostinguitdagingen, waaronder:

  • Schaalbaarheid. Een hostingarchitectuur moet kunnen worden uitgeschaald tijdens piekperioden in het verkeer.
  • RwX-opslag (ReadWriteMany). Standaard slaat WordPress alle statische assets, invoegtoepassingen en themabroncode op in de /wp-content/ map. Tijdens een uitschaalbewerking moeten alle knooppunten kunnen lezen uit en schrijven naar die map.
  • De IOPS-opslagklasse (invoer/uitvoerbewerkingen per seconde). WordPress bestaat uit meer dan 1.000 kleine .php-bestanden die de PHP-processor verwijst, laadt en uitvoert tijdens binnenkomende aanvragen. Met sommige protocollen kan het laden van talloze kleine bestanden de overhead verhogen. De algehele prestaties zijn dan langzamer dan het laden van één bestand met dezelfde totale grootte. Als gevolg hiervan moet de opslagoplossing hoge IOPS ondersteunen.
  • Ongeldige cache. Wanneer er nieuwe activiteit in de toepassing is, bijvoorbeeld wanneer u een nieuw artikel publiceert, moet u de cache ongeldig maken voor alle knooppunten.
  • De tijd om de cache te bouwen. Voor de eerste gebruiker van een bepaald knooppunt kan de reactietijd traag zijn totdat de cache is gebouwd.

Hostingopties voor WordPress in Azure

WordPress kan worden uitgevoerd op App Service, Azure Kubernetes Service (AKS) en Azure Virtual Machines. De grootte van de installatie is een belangrijke factor in de host die u selecteert. Voor kleine tot middelgrote installaties is App Service een rendabele optie. Voor grotere installaties moet u echter AKS of VM-hosting overwegen.

WordPress op App Service

Microsoft biedt een volledig beheerde oplossing voor het uitvoeren van WordPress op App Service op Linux VM's. Zie Een WordPress-site maken voor gedetailleerde informatie. Deze oplossing:

  • Is ontworpen om u te helpen snel en eenvoudig een WordPress-installatie te implementeren.
  • Ideaal voor kleine tot middelgrote WordPress installaties.
  • Biedt de schaalbaarheid, betrouwbaarheid en beveiliging van het Azure-platform zonder dat complexe configuratie of beheer nodig is.
  • Voert automatische updates, back-ups en bewaking uit om ervoor te zorgen dat uw site altijd beschikbaar is.

Zie WordPress op App Service voor meer informatie.

Opslagintensieve workloads

Grote WordPress-installaties kunnen opslagintensief zijn. In deze scenario's moet u een opslagoplossing gebruiken met een hoge IOPS-klasse en lage latentie. U wordt aangeraden Azure NetApp Files. Azure NetApp Files kan opslagintensieve WordPress-implementaties ondersteunen. Het biedt ook extra functies zoals gegevensbescherming, back-up en herstel, replicatie tussen regio's en herstel na noodgevallen.

Voor een containerimplementatie van WordPress moet u AKS gebruiken. Implementeer met Azure NetApp Files opslag via een CSI-stuurprogramma (Kubernetes Container Storage Interface). Azure NetApp Files biedt een ReadWriteMany modus zodat alle knooppunten kunnen lezen uit en schrijven naar dezelfde opslag. Zie AKS WordPress-architectuur voor meer informatie.

Voor een grote WordPress-installatie die wordt uitgevoerd op VM's, moet u Azure NetApp Files koppelen via het NFS-protocol (Network File System). Zie WordPress op virtuele machines voor meer informatie.

Onveranderbare WordPress-container

Een alternatieve benadering voor traditionele hostingmethoden is het implementeren van WordPress in een onveranderbare container. Deze aanpak heeft voor- en nadelen. De broncode en alle resources in onveranderbare containers staan vast en kunnen niet worden gewijzigd na de implementatie. U moet alle wijzigingen aanbrengen, inclusief nieuwe invoegtoepassingen of wordPress-kernupdates, in een nieuwe versie van de containerinstallatiekopieën. Hoewel deze aanpak zorgt voor consistentie en het terugdraaien vereenvoudigt, moet u een implementatiepijplijn bouwen om wijzigingen aan te brengen. Onveranderbare containers kunnen ook worden beperkt in de opties voor permanente opslag die ze bieden. Mogelijk moet u een oplossing ontwikkelen voor het verwerken van mediabestanden en andere gegevens. Ondanks deze beperkingen bieden onveranderbare containerimplementaties voordelen op het gebied van beveiliging, schaalbaarheid en portabiliteit.

U kunt een onveranderbare containerversie van WordPress implementeren op verschillende platforms, waaronder Azure Container Apps, AKS en App Service met een aangepaste containerinstallatiekopieën. U kunt de containerinstallatiekopie hosten in Azure Container Registry.

Medewerkers

Dit artikel wordt onderhouden door Microsoft. Het is oorspronkelijk geschreven door de volgende inzenders.

Hoofdauteur:

Andere inzenders:

  • Adrian Calinescu | Senior Cloud Solution Architect

Als u niet-openbare LinkedIn-profielen wilt zien, meldt u zich aan bij LinkedIn.

Volgende stappen

Productdocumentatie:

Trainingsmodules: