扩展 Traefik
扩展 Traefik
插件是使用自定义功能和行为扩展 Traefik 的强大功能。Plugin Catalog 是一个软件即服务 (SaaS) 平台,提供现有插件的详尽列表。
Plugin Catalog 访问
你可以从 Traefik Dashboard 使用
Plugins菜单项访问 Plugin Catalog。
向 Traefik 实例添加新插件
要向 Traefik 实例添加新插件,你必须更改该实例的安装(静态)配置。每个插件的 Install 部分都提供了安装(静态)配置示例。许多插件在 Traefik 路由(动态)配置中都有自己的部分。
实验性功能
插件可能以不可预见的方式更改 Traefik 的行为。在生产 Traefik 实例中添加新插件时要谨慎。
要了解有关如何向 Traefik 实例添加新插件的更多信息,请参阅开发者文档。
插件系统
Traefik 支持两种不同的插件系统,每种都针对不同的用例和开发者偏好而设计。
Yaegi 插件系统
Traefik Yaegi 插件使用 Go 语言开发。它本质上是一个 Go 包。与预编译的插件不同,Yaegi 插件由 Yaegi(嵌入 Traefik 中的 Go 解释器)即时执行。
这种方法消除了编译和复杂工具链的需要,使插件开发变得像创建 Web 浏览器扩展一样简单。Yaegi 插件支持中间件和 provider 功能。
主要特性
- 使用 Go 语言编写
- 无需编译
- 由嵌入式解释器执行
- 支持完整的 Go 功能集
- 开发期间可热重载
WebAssembly (WASM) 插件系统
Traefik WASM 插件可以使用任何可编译为 WebAssembly (WASM) 的语言开发。这种方法基于 http-wasm。
WASM 插件编译为可移植的二进制模块,在保持安全隔离的同时以接近本机的性能执行。
主要特性
- 多语言支持(Go、Rust、C++ 等)
- 编译为 WebAssembly 二进制
- 接近本机的性能
- 强大的安全隔离
- 目前仅支持中间件
构建你自己的插件
Traefik 用户可以创建自己的插件并使用 Plugin Catalog 与社区共享。要了解有关 Traefik 插件创建的更多信息,请参阅开发者文档。