参考资料

  1. Cloudreve 与 OnlyOffice 集成配置指南
  2. YOURLS (Your Own URL Shortener) 是一个开源的PHP程序,允许用户创建和管理自定义短链接
  3. docker安装redis详细说明以及案例
  4. Apache Spark 是一个开源的分布式计算系统
  5. SWI-Prolog 是一个开源的 Prolog 实现,广泛用于人工智能、自然语言处理和知识表示等领域
  6. Chronograf 是 InfluxData 公司开发的开源可视化工具
  7. Kapacitor是InfluxData开发的开源数据处理引擎
  8. Rocket.Chat 是一款开源的团队聊天平台

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 查看详细错误信息。