Traefik: Enrutando nuestro WordPress

Traefik: Enrutando nuestro Wordpress

En el anterior post instalamos docker  y docker-compose  en una instancia EC2 de Amazon para testear el funcionamiento de Traefik como proxy inverso.

Dejamos corriendo la instalación de Traefik v2.3.6 con una url asegurada mediante certificado SSL Let’s Encrypt.

En este post utilizaremos de nuevo docker  y docker-compose  para levantar un WordPress que será enrutado a través de Traefik y será éste el encargado de dotarlo de certificado y el enrutamiento necesario. Traefik analizará a través del socket de Docker que le hemos pasado en su configuración que hay un nuevo contenedor en el sistema y a través de las labels  de éste le diremos qué url tendrá dicho contenedor y cómo servirlo, en este caso a través de https.

Recordemos que tenemos generado un Wildcard DNS para que todos los subdominios apunten a la IP de nuestra instancia EC2. En este caso, usaremos la url blog.canonigos.me  para desplegar el WordPress.

Generando el fichero docker-compose.yml

Vamos a crear un directorio wordpress  dentro del home de nuestro usuario y a generar un fichero docker-compose.yml  como el siguiente dentro de él:

En este fichero hemos definido dos servicios, uno llamado db  que correrá una imagen de MariaDB 10.5 y otro llamado wordpress  que es la imagen oficial de WordPress (el tag latest  incluye Apache2 + PHP 7.4.13).

Mas allá de configurar contraseñas y dependencias entre los servicios para definir el orden de arranque, son importantes varias cosas:

  • El contenedor WordPress tiene configuradas dos redes, la externa del proxy  que será la que utilizará Traefik para mandarle el tráfico cuando visitemos el blog y la default  por la que se comunicará con el servicio del contenedor db , la base de datos de nuestro WordPress.
  • Hemos creado un volumen llamado wp-db-data  para albergar los datos del contenedor db , así podremos actualizar la versión de WordPress o reiniciar el servicio sin miedo a perder los datos.
  • Las labels  de Traefik asignan este servicio al entrypoint websecure  (es decir, que irá sobre https) y el Host del que Traefik recogerá las peticiones y las enviará a este contenedor.

De esta forma, queda enrutada que cualquier petición que entre a Traefik con el Host:blog.canonigos.me  irá al servicio wordpress  de este stack que vamos a levantar.

Arrancando nuestro WordPress

Vamos a arrancar pues este docker-compose con nuestra aplicación:

Tras esperar un minuto aproximadamente deberíamos poder acceder a la url que hemos definido y que Traefik pasará a nuestro recién creado stack.

Os adjunto capturas del proceso de instalación ya en el navegador:

Traefik: Enrutando nuestro WordPress

Qué ha hecho Traefik por nosotros

Traefik nos ha generado un nuevo enrutamiento para nuestra url blog.canonigos.me enlazando este host con nuestro stack de docker-compose  recién desplegado:

Además ha generado un nuevo certificado para la url y ha configurado las cabeceras necesarias para que dicho certificado se muestre correctamente:

De esta forma Traefik ha solventado fácilmente muchas partes de la configuración y exposición de nuestra aplicación WordPress así como la segurización de la misma tanto por la capa de certificado como la cabeceras de seguridad.

En próximos posts hablaremos de las capacidades de Traefik como Ingress Controller  de Kubernetes.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *