Tutorial

Desplegar sus aplicaciones con Traefik en un VPS

Despliegue3 min de lectura6 pasos

Traefik es un reverse proxy y balanceador de carga cloud-native que descubre sus contenedores Docker automáticamente y les asigna rutas y certificados SSL sin recarga manual. Desplegado en su VPS, se convierte en la puerta de entrada única de todas sus aplicaciones, con una configuración declarativa mediante labels Docker.

Contenido· ¿Por qué poner Traefik al frente de su VPS?1/4
  1. 01¿Por qué poner Traefik al frente de su VPS?
  2. 02Lo que Traefik aporta en concreto en un VPS
  3. 03Requisitos previos
  4. 04Desplegar Traefik con Docker Compose

¿Por qué poner Traefik al frente de su VPS?

Cuando ejecuta varias aplicaciones en contenedores sobre un mismo VPS, gestionar manualmente los virtual hosts de Nginx y renovar cada certificado se vuelve rápidamente inmanejable. Traefik resuelve ese problema leyendo directamente los labels de sus contenedores Docker: usted declara una ruta en el momento del docker run o en su docker-compose.yml, y Traefik la configura en caliente, genera el certificado Let's Encrypt y la expone por HTTPS. Ningún archivo de configuración que editar, ningún reload: todo es dinámico.

Lo que Traefik aporta en concreto en un VPS

  • Descubrimiento automático de los contenedores Docker mediante el provider Docker (las rutas aparecen sin reiniciar)
  • Certificados SSL Let's Encrypt generados y renovados automáticamente (HTTP-01 o DNS-01)
  • Enrutamiento por dominio y por ruta, gestionado íntegramente mediante los labels Docker
  • Dashboard web integrado para visualizar routers, servicios y middlewares en tiempo real
  • Middlewares listos para usar: redirección HTTPS, basic auth, rate limiting, cabeceras de seguridad
  • Balanceo de carga automático cuando escala un servicio a varias réplicas

Requisitos previos

Traefik en sí es muy ligero: 1 vCPU y 1 GB de RAM bastan de sobra para el proxy solo, ya que el sobrecoste viene de sus aplicaciones que están detrás. Prevea un VPS con Docker Engine y el plugin Docker Compose v2 instalados, un nombre de dominio cuyos registros A/AAAA apunten a la IP del VPS, y los puertos 80 y 443 abiertos en su cortafuegos (UFW). Para los certificados wildcard, también necesitará un acceso a la API de su proveedor de DNS.

Desplegar Traefik con Docker Compose

  1. Crear la red y la estructura de carpetas

    Cree una red Docker compartida que usarán Traefik y sus aplicaciones: docker network create proxy. Cree una carpeta traefik/ que contenga un archivo acme.json (el almacén de los certificados) con los permisos correctos: touch acme.json && chmod 600 acme.json. Sin esos permisos restringidos, Traefik se negará a utilizarlo.

  2. Configurar los entrypoints y el resolutor ACME

    En el docker-compose.yml, declare dos entrypoints (web en :80, websecure en :443) y un certificateResolver de Let's Encrypt con su correo y el challenge httpChallenge. Monte el socket de Docker en solo lectura (/var/run/docker.sock:/var/run/docker.sock:ro) para que Traefik descubra los contenedores, y también el volumen acme.json.

  3. Forzar la redirección de HTTP a HTTPS

    Añada un middleware global de redirección en el entrypoint web mediante los labels: traefik.http.routers.http-catchall.middlewares=redirect-to-https. Así todo el tráfico en claro pasa automáticamente a HTTPS, el comportamiento esperado en producción.

  4. Asegurar el dashboard

    Exponga el dashboard en un subdominio (traefik.sudominio.com) protegido por un middleware basicauth. Genere el hash con htpasswd -nb admin contrasena y colóquelo en el label traefik.http.middlewares.auth.basicauth.users. No deje nunca el flag --api.insecure=true en producción.

  5. Lanzar Traefik

    Arranque el stack: docker compose up -d. Compruebe los logs con docker compose logs -f traefik para confirmar la conexión con Let's Encrypt y la ausencia de errores ACME (cuidado con el rate limit de Let's Encrypt en fase de pruebas: utilice el servidor de staging).

  6. Conectar una aplicación

    Para exponer un servicio, conéctelo a la red proxy y añada sus labels: traefik.enable=true, traefik.http.routers.app.rule=Host(\app.sudominio.com\), traefik.http.routers.app.entrypoints=websecure y traefik.http.routers.app.tls.certresolver=letsencrypt. Traefik enruta y certifica la aplicación en unos segundos.

Para obtener un certificado wildcard (*.sudominio.com) y evitar exponer cada subdominio, pase del httpChallenge al dnsChallenge. Configure el provider DNS (Cloudflare, OVH, etc.) mediante las variables de entorno (por ejemplo CF_API_EMAIL, CF_DNS_API_TOKEN): Traefik demuestra la propiedad del dominio con un registro TXT, lo que funciona incluso para servicios que no están expuestos públicamente.

Lance Traefik en unos minutos en un VPS Cloud ServOrbit

Pida un VPS Cloud con Docker preinstalado y despliegue su stack Traefik a partir de la plantilla Despliegue. Sus aplicaciones se enrutan por HTTPS automáticamente.

¿Necesita ayuda?

Consulte nuestro centro de ayuda y nuestra FAQ, o contacte con nuestro equipo: llamada, WhatsApp o correo electrónico. Soporte en francés, inglés y árabe.

Escribir por WhatsAppse abre en una pestaña nueva