WordPress on Azure

Azure App Service
Azure Front Door
Azure Kubernetes Service (AKS)
Firewall de aplicaciones web de Azure
Azure Private Link

WordPress es un sistema de administración de contenidos versátil y popular que se utiliza para crear sitios web de todos los tamaños y para múltiples propósitos. Desde pequeños blogs personales hasta sitios corporativos a gran escala y tiendas de comercio electrónico, WordPress ofrece una gama de funcionalidades y personalizaciones que se adaptan a diferentes necesidades. Sin embargo, debido a los distintos tamaños y casos de uso de sus instalaciones, WordPress también tiene requisitos de alojamiento únicos que dependen de factores como el volumen de tráfico y las necesidades de almacenamiento.

Este artículo trata de las implementaciones de WordPress en Azure. Proporciona orientación sobre qué tener en cuenta e implementar para ayudar a garantizar una instalación segura, escalable y rentable

Consejos generales sobre seguridad y rendimiento de WordPress

Debido a su abrumadora popularidad, WordPress es un objetivo para los piratas informáticos. Los sitios web que funcionan con esta plataforma pueden ser vulnerables a amenazas de seguridad como el malware y los ataques de phishing. Los siguientes consejos pueden ayudarle a hacer frente a estos riesgos creando una instalación de WordPress más segura y con mejor rendimiento.

Tanto si utiliza una máquina virtual (VM) o Azure App Service para su arquitectura de alojamiento, como si utiliza alguna otra solución, estos consejos son aplicables.

Utilice Azure Web Application Firewall

Web Application Firewall ayuda a proteger su sitio web contra ataques comunes basados en web. Actúa como un filtro entre su sitio web e Internet. En esta capacidad, Web Application Firewall supervisa el tráfico entrante y bloquea las solicitudes maliciosas que pueden explotar vulnerabilidades en el código de su sitio web. Web Application Firewall ayuda a proteger su sitio web de una serie de ataques, como inyecciones SQL, secuencias de comandos en sitios cruzados (XSS) y falsificación de solicitud en sitios cruzados (CSRF).

Debe utilizar Web Application Firewall en Azure Front Door para obtener protección centralizada para sus aplicaciones web. Azure Front Door es una red de entrega de contenido que ayuda a proporcionar a los usuarios de todo el mundo un acceso rápido, fiable y seguro al contenido web estático y dinámico de sus aplicaciones. La implementación de Web Application Firewall en Azure Front Door ayuda a defender sus servicios web frente a vulnerabilidades y vulnerabilidad de seguridad comunes.

Elimine los complementos y temas no utilizados

Debe eliminar los complementos y temas no utilizados de su instalación de WordPress. Este paso es importante para ayudar a mantener su sitio web de WordPress seguro y optimizar su rendimiento. Incluso un complemento o tema que no utilice activamente puede suponer un riesgo para la seguridad al proporcionar un punto de entrada para que los piratas informáticos aprovechen las vulnerabilidades de un código obsoleto o sin mantener. Además, tener muchos complementos y temas instalados en su sitio web puede ralentizar su rendimiento al aumentar el tiempo de carga y el uso de recursos del servidor.

Descargue el contenido estático del procesador PHP

Para reducir la carga de su procesador PHP, debe descargar el contenido estático, como imágenes, vídeos y archivos CSS. La descarga de contenido estático ayuda a optimizar el rendimiento del sitio web y a reducir la carga del servidor. Cuando un usuario visita un sitio web, el servidor procesa código PHP y genera contenido HTML de forma dinámica. Este proceso consume muchos recursos. Sin embargo, los contenidos estáticos no cambian con frecuencia, por lo que puedes servirlos directamente desde un sistema de archivos del servidor o desde una red de entrega de contenido. Al descargar estos activos, puede reducir la carga de la CPU y la RAM de su servidor. Esta configuración acelera la carga de las páginas, mejora el rendimiento del sitio web y mejora la experiencia del usuario.

También existen otras ventajas de servir recursos estáticos desde un servicio de red de distribución de contenidos como Azure Front Door. Por ejemplo, cuando descarga contenido estático, puede reducir la latencia y aumentar la velocidad del sitio web colocando servidores cerca de las ubicaciones geográficas de los usuarios.

Nota

Para ayudar a proteger un origen con Azure Front Door mediante el uso de un punto de conexión privado, debe utilizar la SKU Premium de Azure Front Door. Para más información, consulte Asegure su origen con Private Link.

Invalidación de la caché de la red de entrega de contenido

Para grandes instalaciones de WordPress que utilizan una red de entrega de contenido, como Azure Front Door o Azure Content Delivery Network, necesita implementar una lógica de invalidación de caché. Cada vez que se produce un nuevo evento, debe invalidar la caché en la red de entrega de contenido para la página afectada. Algunos ejemplos de eventos son la publicación de un nuevo artículo, la actualización de una página existente y la adición de un comentario. La lógica de invalidación necesita localizar todas las URL a las que afecta el cambio. En concreto, la lógica debe encontrar e invalidar las páginas generadas dinámicamente, como categorías y archivos, en la caché de la red de entrega de contenidos. Con algunos temas y complementos instalados, incluso un cambio menor puede afectar a todas las páginas.

Una forma sencilla de implementar la lógica de descubrimiento es utilizar un complemento que permita activar manualmente la invalidación de la caché para todas las URL. Pero invalidar todas las URL a la vez puede provocar un pico de tráfico en su sitio WordPress. Para ver un ejemplo de lógica de invalidación de caché para Content Delivery Network, consulta la implementación de Flush Azure cache and deploy hook en GitHub.

Habilitación de la autenticación en dos fases

La autenticación de dos factores aumenta la seguridad de su instalación y ayuda a proteger sus cuentas de administrador de accesos no autorizados y ataques. Para aprovechar la autenticación de dos fases, puede utilizar un complemento como el complemento de autenticación miniOrange. Entre otras funciones, este complemento le permite configurar Microsoft Authenticator como método de autenticación de dos fases para los usuarios que inician sesión en su sitio de WordPress como administradores.

Deshabilitar el acceso XML-RPC

XML-RPC es un protocolo remoto que permite a aplicaciones de terceros interactuar con el servidor de su sitio web. Sin embargo, este protocolo también es un objetivo común para los hackers, que lo utilizan para lanzar ataques por fuerza bruta o explotar vulnerabilidades de seguridad en su sistema de administración de contenidos. Si utiliza Azure Front Door, puede desactivar XML-RPC configurando una regla de denegación para URL con el formato /xmlrpc.php.

Restringir el acceso al panel de administración

De manera predeterminada, su panel de administración de WordPress es accesible a cualquier persona con las credenciales de su cuenta y la URL correcta, que tiene el formato /wp-login.php o /wp-admin. Como resultado, los hackers y otros actores maliciosos pueden intentar adivinar sus credenciales, realizar un secuestro de sesión, lanzar ataques por fuerza bruta o explotar vulnerabilidades en WordPress para obtener acceso.

El Web Application Firewall puede ayudar a prevenir algunos ataques, pero muchos administradores prefieren restringir el acceso al panel de administración de WordPress a nivel de red.

Por ejemplo, puede bloquear el acceso a URL privadas en Azure Front Door. A continuación, puede utilizar Azure Application Gateway para proporcionar acceso interno desde una red privada que utilice una topología hub-and-spoke. Las instancias internas de Application Gateway admiten reglas de Web Application Firewall y reglas de Azure Front Door. Estas reglas ayudan a proteger su instalación de WordPress de ataques internos. Si puede tolerar el riesgo de un ataque interno, puede utilizar una instancia interna de Azure Load Balancer en lugar de Application Gateway. El equilibrador de carga funciona en la capa cuatro del modelo de interconexión de sistemas abiertos (OSI).

Diagrama de arquitectura que muestra el acceso público bloqueado a un panel de administración de WordPress. Una VPN en una topología hub-and-spoke proporciona acceso interno.

Descargue un archivo Visio de esta arquitectura.

Ciertos complementos de WordPress requieren que las URLs con el formato /wp-admin/admin-ajax.php sean accesibles públicamente y se eliminen de esta regla de denegación.

Almacenamiento de secretos en Azure Key Vault

Para ayudar a garantizar la seguridad de las implementaciones de WordPress en Azure, recomendamos almacenar secretos, como contraseñas de bases de datos y certificados TLS o SSL, en Key Vault. Este servicio basado en la nube ayuda a proporcionar almacenamiento y gestión seguros de claves criptográficas, certificados y secretos.

Key Vault ayuda a sus aplicaciones y servicios autorizados a acceder de forma segura a los secretos. No es necesario almacenarlos en texto plano dentro de la imagen contenedora de WordPress o en el código de la aplicación.

Mejora del rendimiento

Para optimizar el rendimiento de WordPress, debe ajustar varios parámetros y utilizar complementos. Los siguientes complementos pueden ser útiles para depurar las instalaciones de WordPress:

  • El Monitor de consultas proporciona un desglose del tiempo empleado en cada consulta SQL y otras acciones. Los ejemplos incluyen errores PHP, hooks y acciones, bloques del editor de bloques, scripts y hojas de estilo en cola y llamadas a la API HTTP.
  • Laps proporciona un desglose del tiempo que se emplea en la carga de páginas de WordPress.

Retos del hospedaje de WordPress

Con la arquitectura de aplicaciones de WordPress, existen varios retos de hospedaje, entre los que se incluyen:

  • Escalabilidad. Una arquitectura de hospedaje tiene que poder escalarse horizontalmente durante los periodos de mayor tráfico.
  • Almacenamiento ReadWriteMany (RWX). De manera predeterminada, WordPress almacena todos los activos estáticos, complementos y el código fuente del tema en el directorio /wp-content/. Durante la escalabilidad horizontal, todos los nodos deben ser capaces de leer y escribir en ese directorio.
  • La clase de almacenamiento de operaciones de entrada/salida por segundo (IOPS). WordPress consta de más de 1.000 pequeños archivos .php que el procesador PHP referencia, carga y ejecuta durante las peticiones entrantes. Con algunos protocolos, la carga de numerosos archivos pequeños puede aumentar la sobrecarga. El rendimiento global es entonces más lento que la carga de un solo archivo con el mismo tamaño total. Como resultado, la solución de almacenamiento necesita soportar altas IOPS.
  • Invalidación de la caché. Cuando hay nueva actividad en la aplicación, como cuando se publica un nuevo artículo, es necesario invalidar la caché en todos los nodos.
  • El tiempo para compilar la caché. Para el primer usuario de un nodo determinado, el tiempo de respuesta puede ser lento hasta que se compile la caché.

Opciones de hospedaje de WordPress en Azure

WordPress puede ejecutarse en App Service, Azure Kubernetes Service (AKS) y Azure Virtual Machines. El tamaño de la instalación es un factor importante en el host que seleccione. Para instalaciones pequeñas o medianas, App Service es una opción rentable. Sin embargo, para instalaciones más grandes, debe considerar AKS o el hospedaje de máquinas virtuales.

WordPress en App Service

Microsoft proporciona una solución totalmente administrada para ejecutar WordPress en App Service en máquinas virtuales Linux. Para obtener información detallada, consulte Crear un sitio WordPress. Esta solución realiza las siguientes acciones:

  • Está diseñado para ayudarle a implementar rápida y fácilmente una instalación de WordPress.
  • Es ideal para instalaciones de WordPress pequeñas y medianas.
  • Proporciona la escalabilidad, fiabilidad y seguridad de la plataforma Azure sin necesidad de configuraciones o administraciones complejas.
  • Realiza actualizaciones automáticas, copias de seguridad y supervisión para garantizar que su sitio esté siempre disponible.

Para obtener más información, consulte WordPress on App Service.

Cargas de trabajo intensivas en almacenamiento

Las grandes instalaciones de WordPress pueden necesitar mucho almacenamiento. En estos casos, debe utilizar una solución de almacenamiento con una clase de IOPS alta y baja latencia. Se recomienda Azure NetApp Files. Azure NetApp Files puede admitir implementaciones de WordPress con un uso intensivo de almacenamiento. También proporciona funciones adicionales como protección de datos, copia de seguridad y restauración, replicación entre regiones y recuperación ante desastres.

Para una implementación de WordPress en contenedores, debe utilizar AKS. Con Azure NetApp Files, implemente el almacenamiento a través de un controlador Kubernetes Container Storage Interface (CSI). Azure NetApp Files ofrece un modo ReadWriteMany para que todos los nodos puedan leer y escribir en el mismo almacenamiento. Para obtener más información, consulte Arquitectura de AKS WordPress.

Para una gran instalación de WordPress que se ejecute en máquinas virtuales, debe montar Azure NetApp Files mediante el protocolo de sistema de archivos de red (NFS). Para obtener más información, consulte WordPress en máquinas virtuales.

Contenedor inmutable de WordPress

Un enfoque alternativo a los métodos tradicionales de hospedaje es implementar WordPress en un contenedor inmutable. Este enfoque tiene ventajas y desventajas. El código fuente y todos los recursos dentro de contenedores inmutables son fijos y no se pueden modificar después de la implementación. Es necesario realizar todos los cambios, incluyendo la instalación de nuevos complementos o la actualización del núcleo de WordPress, en una nueva versión de la imagen del contenedor. Aunque este enfoque ayuda a garantizar la coherencia y simplifica las reversiones, tiene que construir una canalización de implementación para realizar cambios. Además, los contenedores inmutables pueden estar limitados en las opciones de almacenamiento persistente que ofrecen. Puede que necesite desarrollar una solución para manejar archivos multimedia y otros datos. A pesar de estas limitaciones, las implementaciones de contenedores inmutables ofrecen ventajas en términos de seguridad, escalabilidad y portabilidad.

Puede implementar una versión en contenedor inmutable de WordPress en varias plataformas, incluidas Azure Container Apps, AKS y App Service con una imagen de contenedor personalizada. Puede hospedar la imagen del contenedor en Azure Container Registry.

Colaboradores

Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes colaboradores.

Autor principal:

Otros colaboradores:

  • Adrian Calinescu | Arquitecto sénior de soluciones en la nube

Para ver los perfiles no públicos de LinkedIn, inicie sesión en LinkedIn.

Pasos siguientes

Documentación del producto:

Módulos de entrenamiento: