Traefik, mi nuevo mejor amigo (III)

Siguiendo con la saga de publicaciones sobre Traefik, y partiendo de la base de que tenemos todo como nos quedó en el anterior post, en esta entrada veremos cómo levantar un servidor web sencillo y la configuración que necesitamos insertar para que Traefik nos lo detecte.

Para ello, vamos a partir de una imagen Docker de lighttpd, el cual es un servidor web ligero y a la vez rápido y flexible, muy útil para pequeños proyectos, además de ser software libre y estar bajo la licencia BSD.

Como siempre, os pondré primero el fichero docker-compose.yml que usaremos y después detallaremos cada una de sus partes, a fin de entender qué estamos haciendo y configurando, y poder extrapolarlo a cualquier servicio que queramos conectar con nuestro Traefik.

version: '2.3' 
services: 
  web: 
    image: sebp/lighttpd:latest 
    container_name: "web" 
    restart: always 
    volumes: 
      - ./www:/var/www/localhost/htdocs 
      - ./config:/etc/lighttpd 
    networks: 
      - traefiknet 
    tty: true 
    labels: 
      - "traefik.enable=true" 
      - "traefik.port=80" 
      - "traefik.backend=web" 
      - "traefik.frontend.rule=Host:example.org" 
      - "traefik.docker.network=traefiknet" 
      - "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https" 
      - "traefik.http.routers.webserver.entrypoints=http" 
      - "traefik.http.routers.webserver.rule=Host(`example.org`) || Host(`www.example.org`)" 
      - "traefik.http.routers.webserver.middlewares=redirect-to-https" 
      - "traefik.http.routers.webserver-secure.entrypoints=https" 
      - "traefik.http.routers.webserver-secure.rule=Host(`example.org`) || Host(`www.example.org`)" 
      - "traefik.http.routers.webserver-secure.tls=true" 
      - "traefik.http.routers.webserver-secure.tls.certresolver=leresolver" 
      
networks: 
  default: 
    traefiknet: 
      external: 
        name: traefiknet
docker-compose.yml para el servidor web

Veamos a continuación cada una de sus partes más relevantes (omito las que ya comenté en la primera entrada de esta saga):

Con esto, cuando ejecutemos el comando:

docker-compose up -d

Se nos levantará un servidor web y, si accedemos a la consola de Traefik, podremos verlo ahí listado, registrado en el entryPoint http y en el https, este último con un escudito en verde indicándonos que está securizado. Si ahora accedemos a nuestro dominio example.org tanto con http:// como https:// y con o sin www, nos redirigirá a la versión segura de la misma. 😎

Y con esto finalizo esta "saga" sobre cómo desplegar nuestra propia web haciendo uso de Traefik y redirigiendo y securizando nuestro endpoint.