AvançadoPro1h 15min
Proxy reverso com Traefik
O Traefik descobre os serviços sozinho lendo labels dos containers: você sobe a stack e já tem três domínios locais roteados, com dashboard.
O roteiro passa por balanceamento entre réplicas, um serviço protegido por HTTPS e autenticação básica, e termina com você adicionando uma rota nova sem tocar na configuração do proxy.
O que você vai praticar
- Configurar roteamento por domínio com labels do Docker
- Balancear carga entre réplicas escaladas dinamicamente
- Proteger um serviço com HTTPS e autenticação básica
O que vem no pacote
docker-compose.yml
services:
traefik:
image: traefik:v3.1
command:
- --api.dashboard=true
- --api.insecure=true
- --providers.docker=true
- --providers.docker.exposedbydefault=false
- --entrypoints.web.address=:80
- --entrypoints.websecure.address=:443
ports:
- "80:80"
- "443:443"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
app1:
image: traefik/whoami:v1.10
labels:
- traefik.enable=true
- traefik.http.routers.app1.rule=Host(`app1.localhost`)
- traefik.http.routers.app1.entrypoints=web
app2:
image: traefik/whoami:v1.10
deploy:
replicas: 2
labels:
- traefik.enable=true
- traefik.http.routers.app2.rule=Host(`app2.localhost`)
- traefik.http.routers.app2.entrypoints=web
segura:
image: traefik/whoami:v1.10
labels:
- traefik.enable=true
- traefik.http.routers.segura.rule=Host(`segura.localhost`)
- traefik.http.routers.segura.entrypoints=websecure
- traefik.http.routers.segura.tls=true
# usuário: lab / senha: malabs (hash gerado com htpasswd)
- traefik.http.routers.segura.middlewares=autenticacao
- traefik.http.middlewares.autenticacao.basicauth.users=lab:$$apr1$$R9ge/fWE$$CMo4E/g7zcz.Rc/FJrcXA1Este lab pede o seu token do MA Labs
Cole o token (disponível no seu painel) na variável MALABS_TOKEN do .env do pacote. Sem um token válido, o lab recusa iniciar.