98 lines
2.8 KiB
Markdown
98 lines
2.8 KiB
Markdown
# 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* |