Bearbeiten

WordPress in Azure

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

WordPress ist ein vielseitiges und beliebtes Content-Management-System, das verwendet wird, um Websites jeder Größe für verschiedene Zwecke zu erstellen. Von kleinen persönlichen Blogs bis hin zu großen Unternehmenswebsites und E-Commerce-Stores bietet WordPress eine Reihe von Funktionen und Anpassungen für unterschiedliche Anforderungen. Aufgrund der unterschiedlichen Größe der Installationen und der verschiedenen Anwendungsfälle hat WordPress jedoch auch einzigartige Hostinganforderungen, die von Faktoren wie dem Datenverkehrsvolumen und dem Speicherbedarf abhängen.

In diesem Artikel werden WordPress-Bereitstellungen in Azure behandelt. Er enthält Hinweise darauf, was zu überlegen und zu implementieren ist, um eine sichere, skalierbare und kostengünstige Installation sicherzustellen.

Allgemeine Sicherheits- und Leistungstipps zu WordPress

Aufgrund seiner großen Beliebtheit ist WordPress ein Ziel für Hacker. Websites, die auf der Plattform ausgeführt werden, können anfällig für Sicherheitsbedrohungen wie Schadsoftware und Phishing-Angriffe sein. Die folgenden Tipps können Ihnen helfen, diese Risiken zu vermeiden, indem Sie eine sicherere und leistungsfähigere WordPress-Installation erstellen.

Diese Tipps sind unabhängig davon, ob Sie einen virtuellen Computer (VM) oder Azure App Service für Ihre Hostingarchitektur verwenden oder ob Sie eine andere Lösung verwenden, anwendbar.

Einsatz von Azure Web Application Firewall

Mit Web Application Firewall können Sie Ihre Website vor gängigen webbasierten Angriffen schützen. Diese Lösung wirkt wie ein Filter zwischen Ihrer Website und dem Internet. In dieser Funktion überwacht Web Application Firewall den eingehenden Datenverkehr und blockiert schädliche Anforderungen, die Sicherheitsrisiken im Code Ihrer Website ausnutzen können. Web Application Firewall schützt Ihre Website vor einer Reihe von Angriffen, einschließlich Einschleusung von SQL-Befehlen, Cross-Site Scripting (XSS) und Cross-Site Request Forgery (CSRF, websiteübergreifende Anforderungsfälschung).

Sie sollten Web Application Firewall in Azure Front Door verwenden, um einen zentralen Schutz für Ihre Webanwendungen zu erhalten. Azure Front Door ist ein Content Delivery Network, das Benutzer*innen auf der ganzen Welt schnellen, zuverlässigen und sicheren Zugriff auf die statischen und dynamischen Webinhalte Ihrer Anwendungen bietet. Durch die Bereitstellung von Web Application Firewall in Azure Front Door können Sie Ihre Webdienste vor gängigen Exploits und Sicherheitsrisiken schützen.

Entfernen nicht verwendeter Plug-Ins und Designs

Sie sollten nicht verwendete Plug-Ins und Designs aus Ihrer WordPress-Installation entfernen. Dieser Schritt ist wichtig, um die Sicherheit Ihrer WordPress-Website zu gewährleisten und ihre Leistung zu optimieren. Selbst ein Plug-In oder ein Design, das Sie nicht aktiv verwenden, kann ein Sicherheitsrisiko darstellen, da es Hacker*innen einen Einstiegspunkt bietet, um Schwachstellen in veraltetem oder nicht gewartetem Code auszunutzen. Darüber hinaus kann die Installation zahlreicher Plug-Ins und Designs auf Ihrer Website die Leistung beeinträchtigen, indem sie die Ladezeit und den Verbrauch von Serverressourcen erhöht.

Auslagern statischer Inhalte vom PHP-Prozessor

Um die Last ihres PHP-Prozessors zu verringern, sollten Sie statische Inhalte wie Bilder, Videos und CSS-Dateien auslagern. Das Auslagern statischer Inhalte trägt zur Optimierung der Leistung der Website und zur Reduzierung der Serverlast bei. Wenn Benutzer*innen eine Website besuchen, verarbeitet der Server den zugehörigen PHP-Code und generiert dynamisch HTML-Inhalte. Dieser Prozess ist ressourcenintensiv. Statische Inhalte ändern sich jedoch nicht häufig, sodass Sie statische Inhalte direkt aus einem Serverdateisystem oder einem Content Delivery Network bereitstellen können. Durch Auslagern dieser Ressourcen können Sie die CPU- und RAM-Last Ihres Servers verringern. Diese Konfiguration führt zu kürzeren Seitenladezeiten, einer verbesserten Websiteleistung und einer besseren Benutzererfahrung.

Die Bereitstellung statischer Ressourcen über einen Content Delivery Network-Dienst wie Azure Front Door bietet auch andere Vorteile. Beispielsweise können Sie durch das Auslagern von statischen Inhalten die Latenz verringern und die Geschwindigkeit der Website erhöhen, indem Sie Server in der Nähe der geografischen Standorte der Benutzer*innen platzieren.

Hinweis

Um einen Ursprung mit Azure Front Door mithilfe eines privaten Endpunkts zu sichern, müssen Sie die Premium-SKU von Azure Front Door verwenden. Weitere Informationen finden Sie unter Sichern Ihres Ursprungs mit Private Link.

Content Delivery Network-Cacheinvalidierung

Für große WordPress-Installationen, die ein Content Delivery Network verwenden, z. B. Azure Front Door oder Azure Content Delivery Network, müssen Sie eine Cacheinvalidierungslogik implementieren. Immer wenn ein neues Ereignis auftritt, müssen Sie den Cache im Content Delivery Network für die betroffene Seite ungültig machen. Solche Ereignisse sind beispielsweise das Veröffentlichen eines neuen Artikels, das Aktualisieren einer vorhandenen Seite und das Hinzufügen eines Kommentars. Die Invalidierungslogik muss alle URLs finden, auf die sich die Änderung auswirkt. Insbesondere muss die Logik dynamisch generierte Seiten wie Kategorien und Archive im Content Delivery Network-Cache finden und für ungültig erklären. Bei einigen installierten Designs und Plug-Ins können sich auch geringfügige Änderungen auf jede Seite auswirken.

Eine einfache Möglichkeit zum Implementieren einer Ermittlungslogik besteht darin, ein Plug-In zu verwenden, mit dem sich die Cacheinvalidierung für alle URLs manuell auslösen lässt. Wenn jedoch alle URLs gleichzeitig invalidiert werden, kann dies zu einer Datenverkehrsspitze auf Ihrer WordPress-Website führen. Ein Beispiel für die Cacheinvalidierungslogik für ein Content Delivery Network finden Sie unter Leeren des Azure-Caches und Bereitstellen der Hookimplementierung auf GitHub.

Aktivieren Sie die zweistufige Authentifizierung.

Die Zwei-Faktor-Authentifizierung erhöht die Sicherheit Ihrer Installation und schützt Ihre Administratorkonten vor unbefugtem Zugriff und vor Angriffen. Um die Vorteile der Zwei-Faktor-Authentifizierung zu nutzen, können Sie ein Plug-In wie das miniOrange-Authentifizierungs-Plug-In verwenden. Dieses Plug-In bietet ihnen unter anderem die Möglichkeit, Microsoft Authenticator als Zwei-Faktor-Authentifizierungsmethode für Benutzer*innen zu konfigurieren, die sich bei Ihrer WordPress-Website als Administratoren anmelden.

Deaktivieren des XML-RPC-Zugriffs

XML-RPC ist ein Remoteprotokoll, das Drittanbieteranwendungen die Möglichkeit bietet, mit dem Server Ihrer Website zu interagieren. Allerdings ist dieses Protokoll auch ein beliebtes Ziel für Hacker, die es nutzen, um Brute-Force-Angriffe durchzuführen oder Sicherheitsrisiken in Ihrem Content Management-System auszunutzen. Wenn Sie Azure Front Door verwenden, können Sie XML-RPC deaktivieren, indem Sie eine Ablehnungsregel für URLs im Format /xmlrpc.phpeinrichten.

Beschränken des Zugriffs auf den Verwaltungsbereich

Standardmäßig ist ihr WordPress-Verwaltungsbereich für jeden zugänglich, der über Ihre Kontoanmeldeinformationen und die richtige URL im Format /wp-login.php oder /wp-admin verfügt. Daher können Hacker und andere böswillige Akteure versuchen, Ihre Anmeldeinformationen zu erraten, Session Hijacking durchzuführen, Brute-Force-Angriffe zu starten oder Sicherheitsrisiken in WordPress auszunutzen, um Zugriff zu erhalten.

Web Application Firewall kann einige Angriffe verhindern, doch viele Administratoren ziehen es vor, den Zugriff auf den WordPress-Verwaltungsbereich auf Netzwerkebene einzuschränken.

Beispielsweise können Sie den Zugriff auf private URLs in Azure Front Door blockieren. Anschließend können Sie Azure Application Gateway verwenden, um den internen Zugriff von einem privaten Netzwerk, das eine Hub-and-Spoke-Topologie verwendet, bereitzustellen. Interne Instanzen von Application Gateway unterstützen Web Application Firewall-Regeln und Azure Front Door-Regeln. Diese Regeln tragen zum Schutz Ihrer WordPress-Installation vor internen Angriffen bei. Wenn Sie das Risiko eines internen Angriffs tolerieren können, können Sie anstelle von Application Gateway eine interne Instanz von Azure Load Balancer verwenden. Load Balancer arbeitet auf der vierten Schicht des OSI-Modells (Open Systems Interconnection).

Architekturdiagramm, das den blockierten öffentlichen Zugriff auf einen WordPress-Verwaltungsbereich zeigt. Ein VPN in einer Hub-and-Spoke-Topologie bietet internen Zugriff.

Laden Sie eine Visio-Datei dieser Architektur herunter.

Für bestimmte WordPress-Plug-Ins müssen URLs im Format /wp-admin/admin-ajax.php öffentlich zugänglich sein und aus dieser Ablehnungsregel entfernt werden.

Speichern von Geheimnissen in Azure Key Vault

Um die Sicherheit von WordPress-Bereitstellungen in Azure zu gewährleisten, wird empfohlen, Geheimnisse wie Datenbankkennwörter und TLS- oder SSL-Zertifikate in Key Vault zu speichern. Dieser cloudbasierte Dienst ermöglicht die sichere Speicherung und Verwaltung von kryptografischen Schlüsseln, Zertifikaten und Geheimnissen.

Key Vault hilft autorisierten Anwendungen und Diensten, sicher auf Geheimnisse zuzugreifen. Sie müssen sie nicht in Nur-Text-Format in Ihrem WordPress-Containerimage oder im Anwendungscode speichern.

Optimieren der Leistung

Um die WordPress-Leistung zu optimieren, sollten Sie verschiedene Einstellungen optimieren und Plug-Ins verwenden. Die folgenden Plug-Ins können beim Debuggen von WordPress-Installationen nützlich sein:

  • Die Abfrageüberwachung liefert eine Aufschlüsselung der Zeit, die für jede SQL-Abfrage und andere Aktionen aufgewendet wird. Beispiele hierfür sind PHP-Fehler, Hooks und Aktionen, Block-Editor-Blöcke, in die Warteschlange eingereihte Skripts und Formatvorlagen sowie HTTP-API-Aufrufe.
  • Laps bietet eine Aufschlüsselung der Zeit, die für das Laden von WordPress-Seiten aufgewendet wird.

Hostingherausforderungen von WordPress

Die WordPress-Anwendungsarchitektur birgt mehrere Hostingherausforderungen, darunter:

  • Skalierbarkeit. Eine Hostingarchitektur muss sich in Datenverkehrsspitzenzeiten aufskalieren lassen.
  • ReadWriteMany-Speicher (RWX). Standardmäßig speichert WordPress alle statischen Ressourcen, Plug-Ins und Designquellcode im Verzeichnis /wp-content/. Während einer horizontalen Skalierung müssen alle Knoten aus diesem Verzeichnis lesen und in es schreiben können.
  • IOPS-Speicherklasse (E/A-Speichervorgänge pro Sekunde). WordPress besteht aus über 1.000 kleinen PHP-Dateien, die der PHP-Prozessor bei eingehenden Anforderungen referenziert, lädt und ausführt. Bei einigen Protokollen kann das Laden zahlreicher kleiner Dateien zu einem höheren Mehraufwand führen. Die Gesamtleistung ist dann schlechter als beim Laden einer Datei mit der gleichen Gesamtgröße. Daher muss die Speicherlösung hohe IOPS unterstützen.
  • Cacheinvalidierung. Wenn eine neue Aktivität in der Anwendung stattfindet, z. B. wenn Sie einen neuen Artikel veröffentlichen, müssen Sie den Cache für alle Knoten ungültig machen.
  • Der zum Erstellen des Caches erforderliche Zeitraum. Bis der Cache erstellt worden ist, kann die Antwortzeit für den ersten Benutzer eines bestimmten Knotens langsam sein.

WordPress-Hostingoptionen in Azure

WordPress kann in App Service, Azure Kubernetes Service (AKS) und Azure Virtual Machines ausgeführt werden. Die Größe der Installation ist ein wichtiger Faktor bei der Auswahl des Host. Bei kleinen bis mittleren Installationen ist App Service eine kostengünstige Option. Bei größeren Installationen sollten Sie jedoch AKS- oder VM-Hosting in Betracht ziehen.

WordPress in App Service

Microsoft bietet eine vollständig verwaltete Lösung zum Ausführen von WordPress in App Service für Linux-VMs. Ausführliche Informationen finden Sie unter Erstellen einer WordPress-Website. Diese Lösung umfasst Folgendes:

  • Ist so konzipiert, dass Sie eine WordPress-Installation schnell und einfach bereitstellen können.
  • Eignet sich ideal für kleine bis mittlere WordPress-Installationen.
  • Bietet die Skalierbarkeit, Zuverlässigkeit und Sicherheit der Azure-Plattform, ohne eine komplexe Konfiguration oder Verwaltung zu erfordern.
  • Führt automatische Updates, Sicherungen und Überwachung aus, um sicherzustellen, dass Ihre Website immer verfügbar ist.

Weitere Informationen finden Sie unter WordPress in App Service.

Speicherintensive Workloads

Große WordPress-Installationen können speicherintensiv sein. In diesen Szenarien sollten Sie eine Speicherlösung mit einer hohen IOPS-Klasse und einer niedrigen Latenz verwenden. Empfohlen wird Azure NetApp Files. Azure NetApp Files kann speicherintensive WordPress-Bereitstellungen unterstützen. Zudem stehen zusätzliche Features wie Datenschutz, Sicherung und Wiederherstellung, regionsübergreifende Replikation und Notfallwiederherstellung zur Verfügung.

Für eine Containerbereitstellung von WordPress sollten Sie AKS verwenden. Bei Azure NetApp Files implementieren Sie über einen Kubernetes-CSI-Treiber (Container Storage Interface) Speicher. Azure NetApp Files bietet den Modus ReadWriteMany, sodass alle Knoten aus demselben Speicher lesen und in diesen schreiben können. Weitere Informationen finden Sie unter AKS-WordPress-Architektur.

Für eine große WordPress-Installation, die auf VMs ausgeführt wird, sollten Sie Azure NetApp Files über das NFS-Protokoll (Network File System) einbinden. Weitere Informationen finden Sie unter WordPress auf virtuellen Computern.

Unveränderlicher WordPress-Container

Ein alternativer Ansatz zu herkömmlichen Hostingmethoden ist die Bereitstellung von WordPress in einem unveränderlichen Container. Dieser Ansatz hat Vor- und Nachteile. Der Quellcode und alle Ressourcen in unveränderlichen Containern sind fest und können nach der Bereitstellung nicht mehr geändert werden. Sie müssen alle Änderungen, einschließlich neuer Plug-In-Installationen oder WordPress Core-Updates, an einer neuen Version des Containerimages vornehmen. Dieser Ansatz trägt zwar zur Konsistenz bei und vereinfacht Rollbacks, doch müssen Sie eine Bereitstellungspipeline erstellen, um Änderungen vorzunehmen. Außerdem können unveränderliche Container eingeschränkte Optionen für die persistente Speicherung bieten. Möglicherweise müssen Sie eine Lösung für den Umgang mit Mediendateien und anderen Daten entwickeln. Trotz dieser Einschränkungen bieten unveränderliche Containerbereitstellungen Vorteile in Bezug auf Sicherheit, Skalierbarkeit und Portabilität.

Sie können eine unveränderliche Containerversion von WordPress auf verschiedenen Plattformen bereitstellen, einschließlich Azure Container Apps, AKS und App Service mit einem benutzerdefinierten Containerimage. Das Containerimage kann in Azure Container Registry gehostet werden.

Beitragende

Dieser Artikel wird von Microsoft gepflegt. Er wurde ursprünglich von folgenden Mitwirkenden geschrieben:

Hauptautor:

Andere Mitwirkende:

  • Adrian Calinescu | Senior Cloud Solution Architect

Melden Sie sich bei LinkedIn an, um nicht öffentliche LinkedIn-Profile anzuzeigen.

Nächste Schritte

Produktdokumentation:

Trainingsmodule: