Édition

WordPress sur Azure

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

WordPress est un système de gestion de contenu polyvalent et populaire qui est utilisé pour créer des sites web de toutes tailles, à des fins multiples. De petits blogs personnels à des sites d’entreprise à grande échelle et des magasins d’e-commerce, WordPress offre une gamme de fonctionnalités et de personnalisations pour répondre à différents besoins. Toutefois, en raison des différentes tailles et des cas d’usage de ses installations, WordPress a également des exigences d’hébergement uniques qui dépendent de facteurs tels que le volume de trafic et les besoins en stockage.

Cet article couvre les déploiements WordPress sur Azure. Il fournit des conseils sur les éléments à prendre en considération et à implémenter pour garantir une installation sécurisée, évolutive et à moindre coût.

Conseils généraux sur la sécurité et les performances de WordPress

En raison de sa popularité écrasante, WordPress est une cible pour les pirates. Les sites web qui s’exécutent sur la plateforme peuvent être vulnérables aux menaces de sécurité telles que les programmes malveillants et les attaques par hameçonnage. Les conseils suivants peuvent vous aider à résoudre ces risques en créant une installation WordPress plus sécurisée et plus performante.

Que vous utilisiez une machine virtuelle ou un Azure App Service pour votre architecture d’hébergement, ou que vous utilisiez une autre solution, ces conseils s’appliquent.

Utiliser Azure Web Application Firewall

Web Application Firewall permet de sécuriser votre site web contre les attaques web les plus courantes. Il agit comme un filtre entre votre site web et Internet. Dans cette capacité, Web Application Firewall surveille le trafic entrant et bloque les requêtes malveillantes qui peuvent exploiter des vulnérabilités dans le code de votre site web. Web Application Firewall permet de protéger votre site web contre toute une série d’attaques, notamment les injections SQL, les scripts intersites (XSS) et la falsification de requête intersites (CSRF).

L’utilisation d’Azure Web Application Firewall sur Azure Front Door offre une protection centralisée à vos applications web. Azure Front Door est un réseau de distribution de contenu qui permet aux utilisateurs du monde entier d’accéder rapidement, de manière fiable et sécurisée au contenu web statique et dynamique de vos applications. Le déploiement de Web Application Firewall sur Azure Front Door permet de défendre vos services web contre les failles et vulnérabilités courantes.

Supprimer les plug-ins et les thèmes inutilisés

Vous devez supprimer les plug-ins et les thèmes inutilisés de votre installation WordPress. Cette étape est importante pour vous aider à sécuriser votre site web WordPress et à optimiser ses performances. Même un plug-in ou un thème que vous n’utilisez pas activement peut poser un risque de sécurité en fournissant un point d’entrée pour les pirates informatiques qui pourraient exploiter des vulnérabilités dans du code obsolète ou non entretenu. En outre, le fait d’avoir un grand nombre de plug-ins et de thèmes installés sur votre site web peut ralentir ses performances en augmentant le temps de chargement et l’utilisation des ressources du serveur.

Décharger du contenu statique du processeur PHP

Pour réduire la charge sur votre processeur PHP, vous devez décharger du contenu statique, tel que des images, des vidéos et des fichiers CSS. Le déchargement du contenu statique permet d’optimiser les performances du site web et de réduire la charge du serveur. Lorsqu’un utilisateur visite un site web, le serveur traite le code PHP et génère du contenu HTML de manière dynamique. Ce processus consomme beaucoup de ressources. Toutefois, le contenu statique ne change pas fréquemment. Vous pouvez donc servir du contenu statique directement à partir d’un système de fichiers serveur ou d’un réseau de distribution de contenu. En déchargeant ces ressources, vous pouvez réduire la charge sur le processeur et la RAM de votre serveur. Cette configuration permet d’accélérer les temps de chargement des pages, d’améliorer les performances du site web et d’améliorer l’expérience utilisateur.

Il existe également d’autres avantages à servir des ressources statiques à partir d’un service réseau de distribution de contenu tel qu’Azure Front Door. Par exemple, lorsque vous déchargez du contenu statique, vous pouvez réduire la latence et augmenter la vitesse du site web en plaçant les serveurs à proximité de l’emplacement géographique des utilisateurs.

Notes

Pour vous aider à sécuriser une origine avec Azure Front Door à l’aide d’un point de terminaison privé, vous devez utiliser la niveau tarifaire Premium d’Azure Front Door. Pour plus d’informations, consultez Sécuriser votre origine avec Azure Private Link.

Invalidation du cache du réseau de distribution de contenu

Pour les installations WordPress volumineuses qui utilisent un réseau de distribution de contenu, comme Azure Front Door ou Azure Content Delivery Network, vous devez implémenter une logique d’invalidation du cache. Chaque fois qu’un nouvel événement se produit, vous devez invalider le cache dans le réseau de distribution de contenu pour la page affectée. Parmi les exemples d’événements, citons la publication d’un nouvel article, la mise à jour d’une page existante et l’ajout d’un commentaire. La logique d’invalidation doit localiser toutes les URL affectées par la modification. Plus précisément, la logique doit rechercher et invalider les pages générées dynamiquement, telles que les catégories et les archives, dans le cache du réseau de distribution de contenu. Avec certains thèmes et plug-ins installés, même une modification mineure peut affecter chaque page.

Un moyen simple d’implémenter une logique de découverte consiste à utiliser un plug-in qui active le déclenchement manuel de l’invalidation du cache pour toutes les URL. Mais l’invalidation de toutes les URL à la fois peut entraîner un pic de trafic sur votre site WordPress. Pour obtenir un exemple de logique d’invalidation du cache pour Content Delivery Network, consultez l’implémentation du cache Flush Azure et le déploiement du hook sur GitHub.

Activer l’authentification à deux facteurs

L’authentification à deux facteurs augmente la sécurité de votre installation et permet de protéger vos comptes d’administrateur contre les accès non autorisés et les attaques. Pour tirer parti de l’authentification à deux facteurs, vous pouvez utiliser un plug-in tel que le plug-in d’authentification miniOrange. Entre autres fonctionnalités, ce plug-in vous permet de configurer Microsoft Authenticator comme méthode d’authentification à deux facteurs pour les utilisateurs qui se connectent à votre site WordPress en tant qu’administrateurs.

Désactiver l’accès XML-RPC

XML-RPC est un protocole distant qui permet aux applications tierces d’interagir avec le serveur de votre site web. Toutefois, ce protocole est également une cible courante pour les pirates informatiques, qui l’utilisent pour lancer des attaques par force brute ou exploiter des vulnérabilités dans votre système de gestion de contenu. Si vous utilisez Azure Front Door, vous pouvez désactiver XML-RPC en configurant une règle de refus pour les URL au format /xmlrpc.php.

Restreinte l’accès au panneau d’administration

Par défaut, votre panneau d’administration WordPress est accessible à toute personne disposant des informations d’identification de votre compte et de l’URL correcte, qui a le format /wp-login.php ou /wp-admin. Par conséquent, les pirates informatiques et d’autres acteurs malveillants peuvent tenter de deviner vos informations d’identification, d’effectuer un détournement de session, de lancer des attaques par force brute ou d’exploiter des vulnérabilités dans WordPress pour y accéder.

Web Application Firewall peuvent aider à empêcher certaines attaques, mais de nombreux administrateurs préfèrent restreindre l’accès au panneau d’administration WordPress au niveau du réseau.

Par exemple, vous pouvez bloquer l’accès aux URL privées dans Azure Front Door. Vous pouvez ensuite utiliser Azure Application Gateway pour fournir un accès interne à partir d’un réseau privé qui utilise une topologie hub-and-spoke. Les instances internes de Application Gateway prennent en charge les règles Web Application Firewall et les règles Azure Front Door. Ces règles permettent de protéger votre installation WordPress contre les attaques internes. Si vous pouvez tolérer le risque d’une attaque interne, vous pouvez utiliser une instance interne de Azure Load Balancer au lieu de Application Gateway. Azure Load Balancer opère à la couche quatre du modèle OSI (Open Systems Interconnection).

Diagramme de l’architecture qui montre un accès public bloqué à un panneau d’administration WordPress. Un VPN dans une topologie de réseau hub-and-spoke permet un accès interne.

Téléchargez un fichier Visio de cette architecture.

Certains plug-ins WordPress nécessitent que les URL au format /wp-admin/admin-ajax.php soient accessibles publiquement et supprimées de cette règle de refus.

Stocker les secrets dans Azure Key Vault

Pour garantir la sécurité des déploiements WordPress sur Azure, nous vous recommandons de stocker les secrets, tels que les mots de passe de base de données et les certificats TLS ou SSL, dans Key Vault. Ce service cloud permet de fournir un stockage et une gestion sécurisés des clés de chiffrement, des certificats et des secrets.

Key Vault permet à vos applications et services autorisés d’accéder en toute sécurité aux secrets. Vous n’avez pas besoin de les stocker en texte brut dans votre image conteneur WordPress ou dans le code de l’application.

Optimiser les performances

Pour optimiser les performances de WordPress, vous devez paramétrer différents paramètres et utiliser des plug-ins. Les plug-ins suivants peuvent être utiles pour déboguer des installations WordPress :

  • Query Monitor fournit une décomposition du temps passé sur chaque requête SQL et d’autres actions. Les exemples incluent des erreurs PHP, des hooks et des actions, des blocs d’éditeur de blocs, des scripts et des feuilles de style mis en file d’attente et des appels d’API HTTP.
  • Laps fournit une décomposition du temps passé au niveau des temps de chargement de pages WordPress.

Défis d’hébergement de WordPress

Avec l’architecture de l’application WordPress, il existe plusieurs défis d’hébergement, notamment :

  • Scalabilité. Une architecture d’hébergement doit pouvoir effectuer un scale-out pendant les périodes de pic de trafic.
  • Stockage ReadWriteMany (RWX). Par défaut, WordPress stocke toutes les ressources statiques, les plug-ins et le code source de thème dans le répertoire /wp-content/. Pendant un scale-out, tous les nœuds doivent être en mesure de lire et d’écrire dans ce répertoire.
  • Opérations d’entrée/sortie par seconde (IOPS) sur le stockage et bande passante. WordPress se compose de plus de 1 000 petits fichiers .php que le processeur PHP référence, charge et exécute pendant les requêtes entrantes. Avec certains protocoles, le chargement de nombreux petits fichiers peut augmenter la surcharge. Les performances globales sont alors plus lentes que le chargement d’un fichier avec la même taille totale. Par conséquent, la solution de stockage doit prendre en charge un nombre élevé d’E/S par seconde.
  • Invalidation du cache. Quand une nouvelle activité est présente dans l’application, par exemple lorsque vous publiez un nouvel article, vous devez invalider le cache sur tous les nœuds.
  • Le temps de génération du cache. Pour le premier utilisateur d’un nœud donné, le temps de réponse peut être lent jusqu’à ce que le cache soit généré.

Options d’hébergement WordPress sur Azure

WordPress peut s’exécuter sur App Service, Azure Kubernetes Service (AKS) et les Machines Virtuelles Microsoft Azure. La taille de l’installation est un facteur important dans l’hôte que vous sélectionnez. Pour les petites et moyennes installations, App Service est une option rentable. Toutefois, pour les installations plus volumineuses, vous devez envisager l’hébergement AKS ou par machine virtuelle.

WordPress sur App Service

Microsoft fournit une solution entièrement managée pour l’exécution de WordPress sur App Service sur les machines virtuelles Linux. Pour plus d’informations, consultez Créer un site WordPress. Cette solution :

  • Est conçu pour vous aider à déployer rapidement et facilement une installation WordPress.
  • Est idéal pour les installations WordPress de petite à moyenne taille.
  • Fournit l’extensibilité, la fiabilité et la sécurité de la plateforme Azure sans avoir besoin d’une configuration ou d’une gestion complexes.
  • Effectue des mises à jour automatiques, des sauvegardes et une surveillance pour vous assurer que votre site soit toujours disponible.

Pour en savoir plus, consultez WordPress sur App Service.

Charges de travail intensives en stockage

Les installations WordPress volumineuses peuvent être gourmandes en stockage. Dans ces scénarios, vous devez utiliser une solution de stockage avec une classe d’IOPS élevée et une faible latence. Nous vous recommandons Azure NetApp Files. Azure NetApp Files peut prendre en charge les déploiements WordPress nécessitant beaucoup de stockage. Il fournit également des fonctionnalités supplémentaires telles que la protection des données, la sauvegarde et la restauration, la réplication inter-région et la récupération d’urgence.

Pour un déploiement de conteneur de WordPress, vous devez utiliser AKS. Avec Azure NetApp Files, implémentez le stockage via un pilote CSI (Container Storage Interface) Kubernetes. Azure NetApp Files propose un ReadWriteMany mode permettant à tous les nœuds de lire et d’écrire dans le même stockage. Pour plus d’informations, consultez Architecture AKS Wordpress.

Pour une installation WordPress volumineuse qui s’exécute sur des machines virtuelles, vous devez monter Azure NetApp Files via le protocole NFS (Network File System). Pour plus d’informations, consultez WorPress sur les machines virtuelles.

Conteneur WordPress immuable

Une autre approche des méthodes d’hébergement traditionnelles consiste à déployer WordPress dans un conteneur immuable. Cette approche a des avantages et des inconvénients. Le code source et toutes les ressources au sein de conteneurs immuables sont corrigés et ne peuvent pas être modifiés après le déploiement. Vous devez apporter toutes les modifications, y compris les nouvelles installations de plug-in ou la mise à jour du cœur de WordPress, dans une nouvelle version de l’image conteneur. Bien que cette approche contribue à garantir la cohérence et simplifie les restaurations, vous devez créer un pipeline de déploiement pour apporter des modifications. De plus, les conteneurs immuables peuvent être limités dans les options de stockage persistant qu’ils offrent. Vous devrez peut-être développer une solution pour la gestion des fichiers multimédias et d’autres données. Malgré ces limitations, les déploiements de conteneurs immuables offrent des avantages en termes de sécurité, de scalabilité et de portabilité.

Vous pouvez déployer une version conteneurisée immuable de WordPress sur différentes plateformes, notamment Azure Container Apps, AKS et App Service avec une image conteneur personnalisée. Vous pouvez héberger l’image conteneur dans Azure Container Registry.

Contributeurs

Cet article est géré par Microsoft. Il a été écrit à l’origine par les contributeurs suivants.

Auteur principal :

Autres contributeurs :

  • Adrian Calinescu | Architecte de solution cloud senior

Pour afficher les profils LinkedIn non publics, connectez-vous à LinkedIn.

Étapes suivantes

Documentation du produit :

Modules de formation :