traefik/traefik

GitHub: traefik/traefik

Traefik 是一款云原生应用代理,通过自动服务发现和动态配置让微服务流量管理变得简单高效。

Stars: 62278 | Forks: 5885

Traefik

[![Docs](https://img.shields.io/badge/docs-current-brightgreen.svg)](https://doc.traefik.io/traefik) [![Go Report Card](https://goreportcard.com/badge/traefik/traefik)](https://goreportcard.com/report/traefik/traefik) [![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/traefik/traefik/blob/master/LICENSE.md) [![加入社区支持论坛 https://community.traefik.io/](https://img.shields.io/badge/style-register-green.svg?style=social&label=Discourse)](https://community.traefik.io/) [![Twitter](https://img.shields.io/twitter/follow/traefik.svg?style=social)](https://twitter.com/intent/follow?screen_name=traefik) Traefik(发音同 _traffic_)是一个现代化的 HTTP 反向代理和负载均衡器,可以让微服务的部署变得轻松简单。 Traefik 可以与您现有的基础设施组件([Docker](https://www.docker.com/)、[Swarm mode](https://docs.docker.com/engine/swarm/)、[Kubernetes](https://kubernetes.io)、[Consul](https://www.consul.io/)、[Etcd](https://coreos.com/etcd/)、[Rancher v2](https://rancher.com)、[Amazon ECS](https://aws.amazon.com/ecs) 等)集成,并自动且动态地完成自身配置。 将 Traefik 指向您的编排器应该是您唯一需要的配置步骤。 . **[概述](#overview)** . **[功能特性](#features)** . **[支持的后端](#supported-backends)** . **[快速开始](#quickstart)** . **[Web UI](#web-ui)** . **[文档](#documentation)** . . **[支持](#support)** . **[发布周期](#release-cycle)** . **[贡献](#contributing)** . **[维护者](#maintainers)** . **[致谢](#credits)** . :warning: 当迁移到 Traefik 的新主要版本时,请参考 [迁移指南](https://doc.traefik.io/traefik/migrate/v2-to-v3/) 以确保平稳过渡,并了解任何破坏性的变更。 ## 概述 想象一下,您在编排器(如 Swarm 或 Kubernetes)或服务注册中心(如 etcd 或 consul)的帮助下部署了一堆微服务。 现在您希望用户能够访问这些微服务,因此您需要一个反向代理。 传统的反向代理需要您配置每一条路由,以便将路径和子域连接到每一个微服务。 在一个每天都要多次添加、删除、销毁、升级或扩展服务的环境中,保持路由最新的任务变得非常繁琐。 **这正是 Traefik 大显身手的时候!** Traefik 监听您的服务注册中心/编排器 API,并即时生成路由,从而使您的微服务与外部世界相连——无需您进一步干预。 **运行 Traefik,让它为您代劳!** _(但如果您更愿意手动配置某些路由,Traefik 也支持!)_ ![Architecture](https://raw.githubusercontent.com/traefik/traefik/master/docs/content/assets/img/traefik-architecture.png) ## 功能特性 - 持续更新其配置(无需重启!) - 支持多种负载均衡算法 - 通过利用 [Let's Encrypt](https://letsencrypt.org)(支持通配符证书)为您的微服务提供 HTTPS - 熔断器、重试机制 - 通过其清爽的 Web UI 见证魔法 - WebSocket、HTTP/2、gRPC 就绪 - 提供指标(Rest, Prometheus, Datadog, Statsd, InfluxDB 2.X) - 保留访问日志(JSON, CLF) - 快速 - 暴露 Rest API - 打包为单一二进制文件(用 :heart: 和 go 制作)并作为 [官方](https://hub.docker.com/r/_/traefik/) docker 镜像提供 ## 支持的后端 - [Docker](https://doc.traefik.io/traefik/providers/docker/) / [Swarm mode](https://doc.traefik.io/traefik/providers/docker/) - [Kubernetes](https://doc.traefik.io/traefik/providers/kubernetes-crd/) - [ECS](https://doc.traefik.io/traefik/providers/ecs/) - [File](https://doc.traefik.io/traefik/providers/file/) ## 快速开始 想要亲身体验 Traefik,您可以使用我们文档中的 [5 分钟快速开始](https://doc.traefik.io/traefik/getting-started/quick-start/)(您需要 Docker)。 ## Web UI 您可以访问 Traefik 的简单 HTML 前端。 ![Web UI Providers](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/8a656906d4202202.png) ## 文档 您可以在 [https://doc.traefik.io/traefik/](https://doc.traefik.io/traefik/) 找到 Traefik v3 的完整文档。 ## 支持 要获得社区支持,您可以: - 加入 Traefik 社区论坛:[![加入聊天 https://community.traefik.io/](https://img.shields.io/badge/style-register-green.svg?style=social&label=Discourse)](https://community.traefik.io/) 如果您需要商业支持,请通过邮件联系 [Traefik.io](https://traefik.io):。 ## 下载 - 从 [发布](https://github.com/traefik/traefik/releases) 页面获取最新的二进制文件,并使用 [示例配置文件](https://raw.githubusercontent.com/traefik/traefik/master/traefik.sample.toml) 运行它: ``` ./traefik --configFile=traefik.toml ``` - 或者使用官方的精简 Docker 镜像,并使用 [示例配置文件](https://raw.githubusercontent.com/traefik/traefik/master/traefik.sample.toml) 运行它: ``` docker run -d -p 8080:8080 -p 80:80 -v $PWD/traefik.toml:/etc/traefik/traefik.toml traefik ``` - 或者获取源代码: ``` git clone https://github.com/traefik/traefik ``` ## 介绍视频 您可以在 [videos.traefik.io](https://videos.traefik.io) 上找到概览和深度解析视频。 ## 维护者 我们大力提倡开放和共享的理念,坚决反对精英式的封闭做法。任何有动力并希望成为这段旅程一员的人,都应该能够加入核心团队! 这份 [文档](docs/content/contributing/maintainers-guidelines.md) 描述了如何成为 [维护者团队](docs/content/contributing/maintainers.md) 的一员,以及 Traefik 维护者的各项职责和准则。 您也可以在 [这份文档](https://github.com/traefik/contributors-guide/blob/master/issue_triage.md) 中找到有关我们审查 Pull Request 和管理 Issue 流程的更多信息。 ## 发布周期 - 我们通常每年发布 3/4 个新版本(例如 1.1.0, 1.2.0, 1.3.0)。 - 发布候选版本会在正式发布前提供(例如 1.1.0 之前的 1.1.0-rc1, 1.1.0-rc2, 1.1.0-rc3, 1.1.0-rc4)。 - 错误修复版本(例如 1.1.1, 1.1.2, 1.2.1, 1.2.3)根据需要发布(这些版本不提供额外功能,仅包含错误修复)。 每个版本在下一个版本发布前都会得到支持(例如 1.1.x 将被支持直到 1.2.0 发布)。 我们使用 [语义化版本控制](https://semver.org/)。 ## 邮件列表 - 通用公告、新版本发布:发送邮件至 news+subscribe@traefik.io 或访问 [在线查看器](https://groups.google.com/a/traefik.io/forum/#!forum/news)。 - 安全公告:发送邮件至 security+subscribe@traefik.io 或访问 [在线查看器](https://groups.google.com/a/traefik.io/forum/#!forum/security)。 ## 致谢 感谢 [Peka](https://www.instagram.com/pierroks/) 在 Gopher Logo 上所做的出色工作! Traefik 的 Gopher Logo 采用 Creative Commons 3.0 Attributions 许可证授权。 Traefik 的 Gopher Logo 灵感来自 [Takuya Ueda](https://twitter.com/tenntenn) 制作的 Gopher 贴纸。 最初的 Go Gopher 是由 [Renee French](https://reneefrench.blogspot.com/) 设计的。
标签:API网关, Docker, EVTX分析, Go, Golang, Python工具, Ruby工具, Traefik, Web服务器, 动态配置, 反向代理, 子域名突变, 安全编程, 安全防御评估, 容器编排, 应用代理, 开源, 提示注入, 日志审计, 服务发现, 网络通信, 自动化配置, 自定义请求头, 请求拦截, 负载均衡, 路由, 边缘路由, 集群管理