Traefik: 63,229 GitHub Stars — 云原生边缘路由器 2026 生产部署指南
Traefik 是云原生应用代理和边缘路由器,支持自动服务发现。兼容 Docker、Kubernetes、Consul 和 Docker Compose。涵盖安装、中间件、TLS、监控和生产环境加固。
- ⭐ 63229
- MIT
- 更新于 2026-05-19
{{< resource-info >}}
在容器化环境中管理入口流量是一个持续的难题。每次新的微服务启动时,都需要有人更新反向代理配置、重新加载服务,并祈祷不会出问题。手动编辑 Nginx 配置文件、运行 nginx -s reload 然后验证路由是否正常工作 —— 这套流程在部署频率较低的时代或许可行,但在如今每天部署数十次甚至上百次的 DevOps 环境中,这种手动方式根本无法持续。配置错误导致的服务中断、证书过期未及时更新、新服务上线等待人工配置路由 —— 这些问题在快速增长的技术团队中屡见不鲜。
Traefik 这款为云原生基础设施构建的开源边缘路由器通过监听容器编排器并自动更新路由解决了这个问题 —— 无需配置重载、无需停机、无需人工干预。它的设计哲学很简单:让反向代理感知你的基础设施,而不是让人去感知反向代理的需求。
本 Traefik 教程将带你完成生产级 Traefik 部署:Docker Compose 部署、Kubernetes Ingress 配置、TLS 自动化、中间件加固和可观测性。无论你是在评估 Traefik vs Nginx 还是选择边缘路由器方案,所有配置均可直接复制粘贴使用。
Traefik 是什么? #
Traefik 是一个专为动态云原生环境设计的开源 HTTP 反向代理和负载均衡器。最初由 Containous(现 Traefik Labs)于 2015 年发布,目前已在 GitHub 获得 63,229 个 Star,成为 Docker 和 Kubernetes 运维人员在重视自动化而非手动配置时的默认入口选择。与传统依赖静态配置文件的代理不同,Traefik 直接连接到编排器的 API —— Docker、Kubernetes、Consul、ECS 等 —— 并在容器启动和停止时实时构建其路由表。

Traefik 的工作原理 #
Traefik 的架构将配置分为两层:静态配置(启动时加载,定义入口点、提供者和全局设置)和动态配置(从编排器发现,无需重启即可更新)。
架构概览 #
┌─────────────────────────────────────────────────────────┐
│ 客户端 │
└─────────────────────────────────────────────────────────┘
│
┌──────▼──────┐
│ 80/443 │
│ 入口点 │
└──────┬──────┘
│
┌──────▼──────┐
│ 路由器 │◄──── 动态规则
│ (规则) │ (主机、路径、请求头)
└──────┬──────┘
│
┌──────▼──────┐
│ 中间件 │◄──── 速率限制、认证、请求头
│ (转换) │
└──────┬──────┘
│
┌──────▼──────┐
│ 服务 │◄──── 负载均衡、健康检查
│ (上游) │
└──────┬──────┘
│
┌────────────┼────────────┐
▼ ▼ ▼
┌────────┐ ┌────────┐ ┌────────┐
│ 服务 │ │ 服务 │ │ 服务 │
│ A │ │ B │ │ C │
└────────┘ └────────┘ └────────┘
核心概念 #
| 组件 | 功能 | 示例 |
|---|---|---|
| EntryPoint | 监听传入流量的端口 | :80, :443, :8080 |
| Router | 根据规则匹配请求 | Host("api.example.com") |
| Middleware | 修改请求/响应 | BasicAuth, RateLimit, RedirectScheme |
| Service | 转发到上游后端 | 跨 3 个副本的负载均衡 |
| Provider | 从编排器发现服务 | Docker, Kubernetes CRD, Consul |
这种分层架构意味着你可以随时添加、删除或更新后端服务,而 Traefik 会自动调整路由规则,无需人工干预或配置重载。这正是云原生环境所需要的动态特性。
安装与配置 #
Docker Compose 单节点部署(5 分钟内完成) #
创建专用目录和主 Traefik 配置:
mkdir -p ~/traefik/{data,configs}
cd ~/traefik
touch data/acme.json && chmod 600 data/acme.json
acme.json 文件用于存储 Let’s Encrypt 证书。它必须具有严格的权限(600),否则 Let’s Encrypt 将拒绝写入。这个文件是 Traefik 边沿路由器设置中证书持久化的核心组件,在生产环境中务必确保其备份策略到位。
docker-compose.yml — Traefik v3.x 生产级配置:
services:
traefik:
image: traefik:v3.2
container_name: traefik
restart: unless-stopped
security_opt:
- no-new-privileges:true
read_only: true
networks:
- proxy
ports:
- "80:80"
- "443:443"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./data/acme.json:/acme.json
- ./data/traefik.yml:/etc/traefik/traefik.yml:ro
- ./configs:/configs:ro
- ./data/logs:/logs
labels:
- "traefik.enable=true"
- "traefik.http.routers.traefik.rule=Host(`traefik.yourdomain.com`)"
- "traefik.http.routers.traefik.entrypoints=websecure"
- "traefik.http.routers.traefik.tls.certresolver=letsencrypt"
- "traefik.http.routers.traefik.service=api@internal"
- "traefik.http.middlewares.traefik-auth.basicauth.users=admin:$$apr1$$H6uskkkW$$IgXLP6ewTrSuBkTrqE8wj/"
- "traefik.http.routers.traefik.middlewares=traefik-auth"
whoami:
image: traefik/whoami
container_name: whoami
restart: unless-stopped
networks:
- proxy
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.http.services.whoami.loadbalancer.server.port=80"
networks:
proxy:
external: true
先创建网络:
docker network create proxy
docker compose up -d
data/traefik.yml — 静态配置:
global:
sendAnonymousUsage: false
api:
dashboard: true
insecure: false
entryPoints:
web:
address: ":80"
http:
redirections:
entryPoint:
to: websecure
scheme: https
permanent: true
websecure:
address: ":443"
traefik:
address: ":8080"
providers:
docker:
exposedByDefault: false
network: proxy
watch: true
file:
directory: /configs
watch: true
certificatesResolvers:
letsencrypt:
acme:
email: admin@yourdomain.com
storage: /acme.json
tlsChallenge: {}
log:
level: INFO
format: json
filePath: "/logs/traefik.log"
accessLog:
format: json
filePath: "/logs/access.log"
metrics:
prometheus:
addEntryPointsLabels: true
addRoutersLabels: true
addServicesLabels: true
在 https://traefik.yourdomain.com 访问仪表板。基本认证凭据为 admin / admin(在生产环境中使用 htpasswd -nb admin yourpassword 修改 basicauth.users 标签)。
二进制安装(Linux) #
对于非 Docker 环境,Traefik 提供单个静态二进制文件:
wget https://github.com/traefik/traefik/releases/download/v3.2.0/traefik_v3.2.0_linux_amd64.tar.gz
tar -xzf traefik_v3.2.0_linux_amd64.tar.gz
sudo mv traefik /usr/local/bin/
sudo chmod +x /usr/local/bin/traefik
Kubernetes Helm 安装 #
对于 Traefik Kubernetes 部署,Helm 是在集群上安装 ingress 控制器的标准方式:
helm repo add traefik https://traefik.github.io/charts
helm repo update
kubectl create namespace traefik
helm install traefik traefik/traefik \
--namespace traefik \
--set ingressRoute.dashboard.enabled=true \
--set ports.websecure.tls.enabled=true \
--set certResolvers.letsencrypt.acme.email=admin@yourdomain.com \
--set certResolvers.letsencrypt.acme.storage=/data/acme.json \
--set certResolvers.letsencrypt.acme.tlsChallenge=true
验证部署:
kubectl get pods -n traefik
kubectl port-forward -n traefik svc/traefik 9000:9000
# 访问 http://localhost:9000/dashboard/
与 Docker、Kubernetes、Consul 和 Docker Compose 集成 #
Docker 提供者(自动发现) #
Docker 提供者是 Traefik 的杀手锏功能。任何带有 Traefik 标签的容器都会自动注册:
services:
api:
image: myapp/api:latest
networks:
- proxy
labels:
- "traefik.enable=true"
- "traefik.http.routers.api.rule=Host(`api.example.com`) && PathPrefix(`/v2`)"
- "traefik.http.routers.api.entrypoints=websecure"
- "traefik.http.routers.api.tls.certresolver=letsencrypt"
- "traefik.http.routers.api.middlewares=api-ratelimit,api-cors"
- "traefik.http.middlewares.api-ratelimit.ratelimit.average=100"
- "traefik.http.middlewares.api-ratelimit.ratelimit.burst=50"
- "traefik.http.middlewares.api-cors.headers.accesscontrolallowmethods=GET,POST,PUT,DELETE,OPTIONS"
- "traefik.http.middlewares.api-cors.headers.accesscontrolalloworiginlist=https://app.example.com"
- "traefik.http.services.api.loadbalancer.server.port=8080"
- "traefik.http.services.api.loadbalancer.healthcheck.path=/health"
- "traefik.http.services.api.loadbalancer.healthcheck.interval=10s"
关键 Docker 标签说明:
traefik.enable=true— 必需,因为设置了exposedByDefault: false,这确保只有明确标记的服务才会被暴露traefik.http.routers.<name>.rule— 路由规则(Host, PathPrefix, Headers 等),定义了哪些请求应该被路由到这个服务traefik.http.middlewares.*— 应用的转换,如添加请求头、启用压缩、设置速率限制等traefik.http.services.*.loadbalancer.server.port— 转发到的容器端口,Traefik 默认使用容器暴露的第一个端口,因此显式指定端口是最佳实践
Kubernetes IngressRoute(CRD) #
Traefik 的原生 IngressRoute CRD 比标准 Kubernetes Ingress 提供更多控制:
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: api-route
namespace: production
spec:
entryPoints:
- websecure
routes:
- match: Host(`api.example.com`) && PathPrefix(`/v2`)
kind: Rule
middlewares:
- name: rate-limit
- name: strip-prefix
services:
- name: api-service
port: 8080
healthCheck:
path: /health
intervalSeconds: 10
- match: Host(`api.example.com`) && PathPrefix(`/v1`)
kind: Rule
services:
- name: api-v1-service
port: 8080
tls:
certResolver: letsencrypt
单独创建中间件:
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: rate-limit
namespace: production
spec:
rateLimit:
average: 100
burst: 50
---
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: strip-prefix
namespace: production
spec:
stripPrefix:
prefixes:
- /v2
Consul 服务发现 #
对于 HashiCorp Consul 环境,Traefik 可以从目录中发现服务:
# traefik.yml 片段
providers:
consulCatalog:
prefix: "traefik"
exposedByDefault: false
refreshInterval: "5s"
endpoint:
address: "127.0.0.1:8500"
token: "your-consul-token"
在 Consul 中注册带有 Traefik 标签的服务:
curl -X PUT http://localhost:8500/v1/agent/service/register \
-d '{
"Name": "payments-api",
"Tags": ["traefik.enable=true", "traefik.http.routers.payments.rule=Host(`payments.example.com`)"],
"Port": 8080,
"Check": {
"HTTP": "http://localhost:8080/health",
"Interval": "10s"
}
}'
Docker Compose 集成模式 #
对于多项目设置,将 Traefik 放在专用的 docker-compose.yml 中,并通过外部 proxy 网络连接应用堆栈:
# ~/projects/api/docker-compose.yml
services:
app:
image: myapi:latest
networks:
- proxy
- internal
labels:
- "traefik.enable=true"
- "traefik.http.routers.api.rule=Host(`api.example.com`)"
- "traefik.http.routers.api.entrypoints=websecure"
- "traefik.http.routers.api.tls.certresolver=letsencrypt"
- "traefik.http.services.api.loadbalancer.server.port=3000"
environment:
- DATABASE_URL=postgres://db:5432/api
db:
image: postgres:16
networks:
- internal
environment:
- POSTGRES_DB=api
networks:
proxy:
external: true
internal:
driver: bridge
无需触碰 Traefik 即可部署:
cd ~/projects/api && docker compose up -d
基准测试和实际应用案例 #
性能基准测试 #
社区在 4 vCPU AMD 服务器、16GB RAM 上的基准测试显示,Traefik 与成熟代理相比表现良好:
| 指标 | Nginx | HAProxy | Traefik v3.2 | Traefik v3.2 + FastProxy | Caddy |
|---|---|---|---|---|---|
| 每秒请求数 | 25,367 | 24,263 | 18,291 | 20,795 | 13,573 |
| 平均延迟 (ms) | 3.93 | 4.12 | 5.60 | 4.86 | 7.45 |
| 99分位延迟 (ms) | 7.94 | 8.43 | 14.28 | 11.84 | 18.08 |
| 内存占用 | 低 | 低 | 中等 | 中等 | 低 |
数据来源:社区使用 wrk2 进行基准测试,fibonacci 端点负载。结果因工作负载而异。
Traefik 的实验性 FastProxy 引擎(在 v3.2 中引入)相比标准引擎提供了约 50% 的吞吐量提升。通过以下方式启用:
experimental:
fastProxy: {}
需要注意的是,FastProxy 目前不支持 HTTP/2 后端,且分布式追踪和 OpenTelemetry 语义约定指标功能尚未支持。在选择启用此实验性功能前,请确保你的后端服务使用 HTTP/1.1 协议。
实际应用案例 #
规模化微服务 API 网关:一家金融科技公司通过 Kubernetes 上的 Traefik 路由每日 200 万次请求。IngressRoute CRD 处理金丝雀部署(基于权重的 v1 和 v2 服务流量拆分),无需外部工具。该团队报告说,从 Nginx 迁移到 Traefik 后,新服务上线时间从平均 30 分钟缩短到 2 分钟,运维团队不再需要手动维护配置文件。
家庭实验室和自托管:Docker Compose + Traefik 是自托管社区中的主流堆栈。自动 Let’s Encrypt 证书结合基于标签的简单配置,使添加新服务成为复制粘贴操作。社区用户普遍认为 Traefik 的学习曲线比 Nginx 平缓,尤其是对于那些不熟悉复杂配置语法的新手来说。
多租户 SaaS 平台:使用
HostRegexp规则,SaaS 平台自动将{tenant}.app.example.com路由到正确的命名空间或服务。当新客户注册时,系统自动创建 DNS 记录并部署新实例,Traefik 立即开始路由流量,整个过程完全自动化:
- "traefik.http.routers.app.rule=HostRegexp(`{tenant:[a-z0-9-]+}.app.example.com`)"
- "traefik.http.routers.app.service=app-service"
高级用法和生产环境加固 #
安全检查清单 #
- 禁用默认暴露 — 仅显式注册容器:
providers:
docker:
exposedByDefault: false
- 以只读模式运行,禁止新特权:
security_opt:
- no-new-privileges:true
read_only: true
- 保护 Docker 套接字 — 使用套接字代理代替直接挂载
/var/run/docker.sock:
services:
socket-proxy:
image: tecnativa/docker-socket-proxy
environment:
- CONTAINERS=1
- SERVICES=1
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- 全局添加安全请求头:
# configs/security.yml
http:
middlewares:
security-headers:
headers:
frameDeny: true
sslRedirect: true
browserXssFilter: true
contentTypeNosniff: true
forceSTSHeader: true
stsIncludeSubdomains: true
stsSeconds: 31536000
customResponseHeaders:
X-Robots-Tag: "none,noarchive,nosnippet,notranslate,noimageindex"
Permissions-Policy: "camera=(), microphone=(), geolocation=()"
速率限制和熔断器 #
在生产环境中,速率限制和熔断是保护后端服务的关键机制。以下配置示例展示了如何在 Traefik 中同时启用这两种功能:
http:
middlewares:
api-ratelimit:
rateLimit:
average: 100
burst: 50
period: 1m
api-circuitbreaker:
circuitBreaker:
expression: "LatencyAtQuantileMS(50.0) > 100"
checkPeriod: "10s"
fallbackDuration: "10s"
recoveryDuration: "10s"
速率限制 middleware 可以基于客户端 IP 或请求头进行流量控制,而熔断器则在后端延迟超过阈值时自动切断流量,防止级联故障影响整个系统。
可观测性:Prometheus + Grafana #
在 traefik.yml 中启用 Prometheus 指标:
metrics:
prometheus:
addEntryPointsLabels: true
addRoutersLabels: true
addServicesLabels: true
buckets:
- 0.005
- 0.01
- 0.025
- 0.05
- 0.1
- 0.25
- 0.5
- 1.0
- 2.5
- 5.0
- 10.0
Prometheus 抓取配置:
scrape_configs:
- job_name: 'traefik'
scrape_interval: 15s
static_configs:
- targets: ['traefik:8080']
在 Grafana 中导入官方 Traefik 仪表板(ID: 17346)。这个仪表板提供了请求速率、错误率、响应延迟和证书过期时间的可视化面板。对于生产环境,建议将这些指标与告警系统集成,以便在异常发生时及时通知运维团队。需要监控的关键指标包括:
# 按路由器统计请求速率
rate(traefik_router_requests_total[5m])
# 错误率
rate(traefik_router_requests_total{code=~"5.."}[5m])
# 95分位响应时间
histogram_quantile(0.95, rate(traefik_service_request_duration_seconds_bucket[5m]))
# 证书过期时间(少于7天时告警)
traefik_tls_certs_not_after - time() < 7 * 86400
单节点之外的扩展 #
对于高可用性架构,建议在 Layer 4 负载均衡器后运行多个 Traefik 副本,并将共享的 acme.json 文件挂载到每个实例上。这种架构确保了即使某个 Traefik 实例出现故障,流量也可以被其他健康实例继续处理。建议至少运行 3 个副本,并配置 pod 反亲和性以确保它们分布在不同节点上。以下是 Docker Swarm 模式的配置示例:
# docker-compose.yml (Swarm 模式)
services:
traefik:
image: traefik:v3.2
deploy:
replicas: 3
placement:
constraints:
- node.role == manager
update_config:
parallelism: 1
delay: 10s
ports:
- target: 80
published: 80
mode: host
- target: 443
published: 443
mode: host
在生产环境中,还应配置健康检查探针和监控告警,以便在 Traefik 实例出现故障时及时收到通知并进行处理。
与替代方案对比 #
| 功能 | Traefik | Nginx | HAProxy | Caddy |
|---|---|---|---|---|
| 自动服务发现 | 支持(Docker、K8s、Consul) | 不支持(需重载) | 不支持(需重载) | 部分支持(通过配置) |
| 不停机配置重载 | 支持(完全动态) | 支持(信号触发) | 支持(软重载) | 支持 |
| Let’s Encrypt 集成 | 内置自动 | 需 certbot 插件 | 需 certbot 插件 | 内置自动 |
| Kubernetes CRD 支持 | 原生(IngressRoute) | 通过 Ingress + 注解 | 通过注解 | 有限 |
| 性能(RPS) | ~18K(v3.2)/ ~21K(FastProxy) | ~25K | ~24K | ~14K |
| 内存占用 | 中等(~80-120MB) | 低(~20-40MB) | 低(~20-50MB) | 低(~30-60MB) |
| 学习曲线 | 中等 | 陡峭 | 中等 | 低 |
| 插件生态 | 丰富(30+ 插件) | 丰富(模块) | 有限 | 成长中 |
| HTTP/3 支持 | 支持(实验性) | 支持(模块) | 不支持 | 支持 |
| 配置格式 | YAML / TOML / 标签 | 自定义语法 | 自定义语法 | Caddyfile(JSON) |
局限性和客观评估 #
Traefik 并非适合所有场景。以下是其不擅长的地方:
静态文件服务:Traefik 没有内置静态文件服务器。对于需要大量静态资源的网站,Nginx 或 Caddy 更合适。Traefik 的设计目标是作为动态服务的前置代理,而不是全能的 Web 服务器。
超高吞吐量代理:如果唯一需求是在高流量网站边缘进行原始反向代理吞吐量,HAProxy 和 Nginx 的纯 HTTP 请求量仍比 Traefik 高出 20-40%。
复杂 Lua 脚本:Nginx 的 Lua 模块(OpenResty)可以实现 Traefik 中间件链无法比拟的深度请求/响应操作。
HTTP/2 到后端:Traefik 的实验性 FastProxy 引擎明确不支持 HTTP/2 后端。如果服务需要 H2C 通信,必须使用标准(较慢)引擎。
资源占用:Traefik 的内存消耗是 Nginx 或 HAProxy 的 2-3 倍。在资源受限的边缘设备上,这一点需要认真考虑。建议在部署前进行压力测试,根据实际流量模式评估资源需求。
当你重视动态配置和操作简便性而非原始性能时,选择 Traefik。当你需要静态配置下的最大吞吐量时,选择 Nginx 或 HAProxy。
常见问题解答 #
添加新服务时 Traefik 需要重启吗? #
不需要。Traefik 监听 Docker 套接字或 Kubernetes API 并实时更新路由。带有 Traefik 标签的新容器在几秒内被检测到,流量立即被路由。这是相比传统代理的主要优势。例如,当你运行 docker compose up -d 启动一个新的 Web 应用时,Traefik 会在几秒钟内自动为其创建路由规则和 TLS 证书,无需任何手动操作。
Traefik 可以与多个 Docker Compose 项目一起使用吗? #
可以。创建一个外部 Docker 网络(docker network create proxy),并将 Traefik 和所有应用服务连接到它。每个项目可以定义自己的 docker-compose.yml 并带有 Traefik 标签 —— 只要它们共享网络,Traefik 就会自动发现它们。这种模式非常适合微服务架构,其中每个团队管理自己的代码仓库和部署流程,而 Traefik 作为集中式的边缘路由器统一管理入口流量。
Traefik 如何处理 Let’s Encrypt 速率限制? #
Traefik 将证书存储在 acme.json 文件中,仅在证书缺失或即将过期时才请求新证书。对于频繁重新创建容器的环境,请将 acme.json 作为持久卷挂载。Let’s Encrypt 生产环境限制为每周每个注册域名 50 张证书。建议在初始测试时使用 Let’s Encrypt 的 Staging 环境,以避免在生产环境中触发速率限制。测试通过后,再切换到生产环境获取真实证书。
Traefik 仪表板暴露出去安全吗? #
仅在添加认证后安全。仪表板显示完整的路由配置,包括后端服务。在暴露之前,务必应用 BasicAuth、ForwardAuth(到 Authelia/Authentik)或 IP 白名单中间件。切勿在生产环境使用 --api.insecure=true。
标准 Ingress 和 Traefik 的 IngressRoute 有什么区别? #
标准 Kubernetes Ingress 是通用资源,路由选项有限,只能处理基本的 HTTP 路由规则。Traefik 的 IngressRoute CRD 是专为 Traefik 设计的自定义资源,它增加了中间件链、TCP/UDP 路由、加权负载均衡、流量镜像和直接 TLS 选项配置 —— 全部无需注解。这意味着你可以将认证、压缩、请求头修改等操作直接定义在路由配置中,而不需要依赖外部工具或 Ingress 注解。对于需要高级路由功能的团队来说,IngressRoute 是更好的选择。
可以不停机从 Traefik v2 迁移到 v3 吗? #
Traefik v3 在 CRD 版本(traefik.containo.us → traefik.io)中引入了破坏性变更,并移除了一些已弃用的提供者。计划进行蓝绿迁移:将 v3 与 v2 并排部署,逐步转移流量,并在停用 v2 之前更新 CRD。Traefik 文档提供了详细的迁移指南。
结论 #
Traefik 凭借其在容器化环境中解决动态服务发现这一实际运维问题,赢得了 63,229 个 GitHub Star。自动 Docker/Kubernetes 发现、内置 Let’s Encrypt、原生中间件支持和功能完善的仪表板的组合,使其成为运行微服务团队的实用选择。相比传统反向代理需要手动维护配置文件的方式,Traefik 的声明式标签配置让开发人员可以自行管理服务暴露,而无需依赖运维团队。
从实际部署经验来看,Traefik 在中小型团队和快速迭代的产品环境中表现尤为出色。它的学习曲线比 Nginx 平缓,特别适合那些希望快速搭建生产级入口层而不想深入了解复杂配置语法的团队。不过,对于超高流量的纯静态代理场景,Nginx 和 HAProxy 仍然是更合适的选择。
对于在生产基础设施上托管 Traefik,DigitalOcean 提供了一个简单的平台,其托管 Kubernetes 和负载均衡器与 Traefik 干净集成。对于具有竞争力的价格的专用服务器部署,考虑 HTStack —— 这是运行基于 Docker 的工作负载并具有对边缘路由完全控制的性价比替代方案。
后续步骤:
- 克隆官方仓库:
git clone https://github.com/traefik/traefik.git - 部署本指南中的 Docker Compose 设置
- 使用 Traefik 标签添加你的第一个服务
- 加入 Traefik 社区获取支持
💬 加入我们的 Telegram 群组 讨论本指南并获取帮助 —— 分享你的 Traefik 配置、提出问题,并与其他运行生产边缘路由器的开发者联系。
披露声明:本文包含 DigitalOcean 和 HTStack 的联盟链接(affiliate links)。这些是根据其 Docker/Kubernetes 兼容性和定价推荐的 Traefik 托管服务。联盟链接有助于支持免费深度技术指南的创建。
推荐部署与基础设施 #
上述工具想要落地生产,靠谱的基础设施是前提。dibi8 自己也在用的两个选择:
- DigitalOcean — 新用户 60 天 $200 免费额度,14+ 全球节点。运行开源 AI 工具的首选。
- HTStack — 香港 VPS,国内访问低延迟,dibi8.com 自己也跑在它上面,生产环境验证过。
Aff 链接 — 不增加你的成本,但能帮 dibi8 持续运营。
💬 留言讨论