Traefik:比 Nginx 更懂 Docker 的反向代理
## Traefik 是什么
Nginx 需要在配置文件中手动写每个服务的反代规则,服务多了很繁琐。Traefik 是云原生反向代理,会自动发现 Docker 容器,根据容器标签自动配置路由和 SSL 证书。
## Docker Compose 部署
```yaml
services:
traefik:
image: traefik:v3.0
container_name: traefik
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./traefik.yml:/etc/traefik/traefik.yml
- ./acme.json:/acme.json
```
`traefik.yml` 配置参考文中。核心优势:新增服务只需在 docker-compose.yml 里加几行 label,Traefik 自动搞定域名路由和 HTTPS 证书。
## 给服务添加路由
```yaml
services:
whoami:
image: traefik/whoami
labels:
- "traefik.enable=true"
- "traefik.http.routers.whoami.rule=Host(`whoami.yourdomain.com`)"
- "traefik.http.routers.whoami.entrypoints=websecure"
- "traefik.http.routers.whoami.tls.certresolver=letsencrypt"
```
## 中间件
Traefik 的中间件可以做很多事:Basic Auth、IP 白名单、限流等。配合 Cloudflare DNS Challenge 做证书签发更可靠。
## Nginx vs Traefik
全部 Docker 化选 Traefik,混合部署或需要复杂 URL 重写选 Nginx。用了 Traefik 再也不用记 Nginx 配置语法了。
💬 暂无评论