参考资料

  1. httpd(Apache HTTP Server)是Apache软件基金会开发的开源Web服务器软件
  2. XWiki 是一个开源的、基于 Java 的 Wiki 平台
  3. docker镜像(Image)是什么?
  4. Swift是苹果公司开发的一种强大且直观的编程语言
  5. Docker的核心概念
  6. Caddy 是一个现代化的、开源的 Web 服务器和反向代理工具
  7. docker安装ubuntu详细说明以及案例
  8. docker安装nacos详细说明以及案例

Traefik 简介

Traefik 是一个现代化的反向代理和负载均衡工具,专为云原生和微服务架构设计。它支持自动服务发现,动态配置更新,并集成了多种后端(如 Docker、Kubernetes、Consul 等)。


特点

  1. 自动服务发现:自动检测容器或服务的变化并更新路由规则。

  2. 动态配置:无需重启即可应用配置更改。

  3. 多后端支持:支持 Docker、Kubernetes、Rancher、Consul、Etcd 等。

  4. 内置仪表盘:提供可视化监控和管理界面。

  5. 支持多种协议:HTTP/2、WebSocket、gRPC 等。

  6. Let's Encrypt 集成:自动管理 TLS 证书。

  7. 轻量级:Go 语言编写,资源占用低。


最新更新内容及时间

  • 最新版本:v2.10.7(截至 2024 年 6 月)

  • 更新内容

    • 修复若干 Bug。

    • 优化性能及稳定性。

    • 改进 Kubernetes CRD 支持。

    • 更新依赖库。


镜像下载地址

  • Docker Hub:  

    docker pull traefik:latest
    • 官方镜像:traefik

    • 带 Dashboard 的镜像:traefik:v2.10.7


官网地址


文档地址


Docker 安装示例

docker run -d \
  -p 80:80 \
  -p 8080:8080 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  --name traefik \
  traefik:v2.10.7 \
  --api.insecure=true \
  --providers.docker=true
  • 8080 端口用于 Dashboard(默认地址:http://<your-server-ip>:8080/dashboard/)。

  • --api.insecure=true 允许 HTTP 访问 Dashboard(生产环境建议使用 HTTPS)。


YAML 配置示例

traefik.yml 示例:

entryPoints:
  web:
    address: ":80"
  websecure:
    address: ":443"

providers:
  docker:
    endpoint: "unix:///var/run/docker.sock"
    exposedByDefault: false

api:
  dashboard: true
  insecure: true

certificatesResolvers:
  letsencrypt:
    acme:
      email: "your-email@example.com"
      storage: "/letsencrypt/acme.json"
      httpChallenge:
        entryPoint: "web"

常见错误及解决方法

  1. Dashboard 无法访问

    • 确保 --api.insecure=true 已启用。

    • 检查防火墙是否开放 8080 端口。

  2. TLS 证书申请失败

    • 确保域名解析正确,且 HTTP-01DNS-01 挑战配置无误。

    • 检查 acme.json 文件权限(需 600)。

  3. Docker 服务未发现

    • 确保 docker.sock 挂载正确:

      volumes:
        - /var/run/docker.sock:/var/run/docker.sock
  4. 路由 404 错误

    • 检查容器标签(Labels)是否配置正确,例如:

      labels:
        - "traefik.http.routers.myapp.rule=Host(`example.com`)"
  5. Traefik 日志报错

    • 使用 docker logs traefik 查看详细错误信息。

声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。