Ir al contenido principal

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

  1. Preparar dominio/subdominio de la instancia a configurar
  2. Crear archivos de configuración
  3. Cambiar valores de acuerdo a las necesidades de la instancia
  4. Levantar contenedor (docker composer up)
  5. 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