Nginx + Traefik
Requerimientos previos
- Docker instalado
- Instancia de Traefik instalada y corriendo
- Red de Docker creada para conectar contenedor con Traefik
- Opcionalmente, usa un middleware configurado en Traefik:
- autodetectContenttype@file
Pasos
- Preparar dominio/subdominio de la instancia a configurar
- Crear archivos de configuración
- Cambiar valores de acuerdo a las necesidades de la instancia
- Levantar contenedor (docker composer up)
- Visitar aplicación y comprobar que esté funcionando correctamente
Archivos de configuración
compose.yaml
En la configuración de entrypoints
y certresolver
cambiar de acuerdo a los valores configurados en Traefik.
services:
web:
container_name: web
image: nginx:latest
volumes:
- ./files:/usr/share/nginx
- ./nginx_conf:/etc/nginx/conf.d
restart: unless-stopped
networks:
- traefik
labels:
- "traefik.enable=true"
- "traefik.http.routers.web.rule=Host(`ejemplo.com`) || Host(`subdominio.ejemplo.com`)"
- "traefik.http.routers.web.entrypoints=https"
- "traefik.http.routers.web.tls=true"
- "traefik.http.routers.web.tls.certresolver=tls"
- "traefik.http.routers.web.middlewares=autodetectContenttype@file"
- "traefik.http.services.web.loadbalancer.server.port=80"
- "traefik.http.services.web.loadbalancer.passHostHeader=true"
networks:
traefik:
external: true