# NGINX Pathfinder Proxy (Migrated to Traefik) Solução moderna de Proxy Reverso containerizado, agora utilizando **Traefik** para maior automação, suporte nativo a Docker e SSL gerenciado via Let's Encrypt. ## 🚀 Funcionalidades ### 🛡️ Traefik Proxy - **SSL Automatizado**: Let's Encrypt nativo com renovação automática. - **Auto-Discovery**: Detecta automaticamente novos containers Docker com labels específicos. - **Dashboard**: Interface visual para monitoramento de rotas e serviços. - **Métricas**: Suporte nativo a Prometheus habilitado por padrão. - **Logs em JSON**: Ideal para integração com stacks de monitoramento (ELK, Loki). ### ⚡ Performance & Flexibilidade - **HTTP/2 & HTTP/3**: Suporte a protocolos modernos. - **Roteamento Dinâmico**: Configuração de backends externos (VMs/LXC) via arquivo dinâmico. --- ## 🛠️ Como Trabalhar neste Repositório ### Pré-requisitos - Docker & Docker Compose instalados. - Portas 80 e 443 liberadas. ### 1. Implantar o Proxy (Portainer/Docker Compose) 1. Certifique-se de que os arquivos `traefik.yml` e `dynamic_conf.yml` estão presentes. 2. Crie o arquivo de certificados: `touch acme.json && chmod 600 acme.json`. 3. Inicie os containers: ```bash docker compose up -d ``` ### 2. Adicionar um Novo Site (Backend Externo) Edite o arquivo `dynamic_conf.yml` para adicionar novas rotas para servidores fora do Docker. Exemplo de rota: ```yaml http: routers: meu-site: rule: "Host(`meu-site.com.br`)" service: meu-servidor entryPoints: [websecure] tls: { certResolver: letsencrypt } services: meu-servidor: loadBalancer: servers: - url: "http://IP_DO_SERVIDOR" ``` ### 3. Dashboard do Traefik Acesse o dashboard interno para verificar o status das rotas: - **URL**: `http://localhost:8080/dashboard/` --- ## 🏗️ Visão Geral da Stack --- ## 📊 Monitoramento (Zabbix) O Traefik está configurado para exportar métricas no formato Prometheus. Para monitorar no Zabbix: 1. **Host**: Adicione o host do Traefik no Zabbix. 2. **Template**: Use o template oficial **"Traefik by HTTP"** (que utiliza Prometheus internamente). 3. **Endpoint**: As métricas estão disponíveis em `http://IP_DO_PROXY:8080/metrics`. 4. **Macros**: Se necessário, ajuste a macro `{$TRAEFIK.METRICS.PATH}` para `/metrics`. --- -```mermaid +```mermaid graph TD Client[Cliente Externo] -->|":80 / :443"| Traefik subgraph DockerHost["Docker Host"] Traefik[Traefik Proxy] App1[Container A] App2[Container B] end subgraph External["Rede Externa (LXC/VM)"] Gitea[Gitea Server] Zammad[Zammad Server] end Traefik --> App1 Traefik --> App2 Traefik --> Gitea Traefik --> Zammad ``` --- *Mantido por IT Guys*