Entrada

EN CURSO Traefik - proxy inverso

EN CURSO Traefik - proxy inverso

1. ¿Que es un proxy inverso?

Proxy inverso es un servidor intermediario que se sitúa delante de uno o varios servidores web y recibe las peticiones de los clientes

En lugar de que el cliente se comunique directamente con el servidor real, habla con el proxy inverso, y este se encarga de reenviar la solicitud al servidor adecuado y devolver la respuesta.

2. ¿Que es Traefik y para que sirve?

Traefik es un potente proxy reverso con muchas funciones, de ellos son:

  • Configuración dinámica - Treaefik automaticamente encuentra los contenedores y configura las rutas. No hay que reiniciar Traefik configurando las rutas.
  • Integración con Let’s Encrypt - esta integración permite crear y asignar automáticamenete los certificados TLS.
    • Soporta mas de 50 proveedores diferentes.
    • Soporta creación de certificados de varias maneras:
      • dnsChallenge
      • tlsChallenge
      • httpChallenge
  • Panel de control informativa.

Panel de control Panel de control de Traefil

3. Conceptos principales

Los conceptos principales ayudan a comprender cómo fluyen las solicitudes hacia los servicios:

  • Los Entrypoints son los puntos de entrada de red a Traefik. Definen el puerto que recibirá los paquetes y si se escuchará TCP o UDP.
  • Los Routers son enrutadores que se encargan de conectar las solicitudes entrantes a los servicios que pueden gestionarlas. En el proceso, los enrutadores pueden utilizar piezas de middleware para actualizar la solicitud o actuar antes de reenviarla al servicio.
  • Los Middlewares son componentes que permiten modificar, transformar o controlar las solicitudes y respuestas en el camino entre los routers y los servicios. Se utilizan para tareas como autenticación, redirecciones, limitación de velocidad, manipulación de cabeceras, etc.
  • Los Services son responsables de configurar cómo llegar a los servicios reales que finalmente gestionarán las solicitudes entrantes.
  • Los Providers son proveedores de componentes de infraestructura, ya sean orquestadores, motores de contenedores, proveedores de nube o almacenes de clave-valor. La idea es que Traefik consulte las API de los proveedores para encontrar información relevante sobre el enrutamiento y, cuando Traefik detecta un cambio, actualiza dinámicamente las rutas.

Estos conceptos funcionan conjuntamente para gestionar el tráfico desde el momento en que llega una solicitud hasta que llega a la aplicación.

4. Tipos de configuración

Traefik divide su configuración en dos grandes tipos: configuración estática y configuración dinámica. Esta separación es uno de los conceptos fundamentales para entender cómo funciona Traefik.

Photo tipos de configuraciónes Tipos de configuraciónes

4.1. Configuración estática

La configuración estática define el comportamiento básico de Traefik y solo se carga al iniciar el servicio.
Cualquier cambio en esta configuración requiere reiniciar Traefik.

En la configuración estática se definen, entre otros:

  • Entrypoints (puertos y protocolos que Traefik escuchará)
  • Providers (Docker, Kubernetes, File, etc.)
  • Configuración de TLS / ACME (Let’s Encrypt)
  • Logs y nivel de depuración
  • Dashboard y API de Traefik

Hay tres formas diferentes y mutuamente excluyentes (es decir, solo se puede usar una al mismo tiempo) de definir las opciones de configuración de instalación en Traefik:

Esta configuración puede definirse de varias formas:

  1. Fichero de configuración .yml .yaml o .yoml (recomiendo)
  2. Argumentos
  3. Variables
  • Solo se puede usar una al mismo tiempo
  • En los enlaces puede ver listado de argumentos y variables.

4.2. Configuración dinámica

La configuración dinámica define cómo se enruta el tráfico una vez que Traefik está en funcionamiento.
A diferencia de la configuración estática, no requiere reiniciar Traefik cuando cambia.

En la configuración dinámica se definen:

  • Routers
  • Middlewares
    • Autenticación (BasicAuth)
    • Redirecciones HTTP → HTTPS
    • Limitación de velocidad (Rate Limit)
    • Manipulación de cabeceras (Headers)
    • Compresión (Compress)
    • etc.
  • Services
  • Reglas de enrutamiento (Host, Path, Headers, etc.)

Esta configuración suele obtenerse automáticamente desde los providers, por ejemplo:

  • Labels de Docker
  • Archivos dinámicos (file provider)
  • Kubernetes (Ingress / CRD)
  • Consul, Etcd, etc.

Aqui puede ver documentación y todos parámetros

5. Configuración de certificados TLS

Traefik soporta diferentes proveedores para usar ACME.

ACME (Entorno de Gestión de Certificados Automatizado) es un protocolo que automatiza la obtención, instalación y renovación de certificados SSL/TLS.

Si no hay su proveedor en lista, se puede cambiar permiso de gestión a “Cloudflare” sin necediad de transferir dominio. Aqui puede encontrar información como hacerlo

Esta entrada está licenciada bajo CC BY-NC-SA 4.0 por el autor.

© Artem Zatsarnyi. Algunos derechos reservados.

¡Dona aquí!