扩展 Traefik¶
插件是一项强大的功能,可以为 Traefik 扩展自定义功能和行为。插件目录是一个软件即服务(SaaS)平台,提供现有插件的完整列表。
访问插件目录
您可以通过 Traefik 仪表盘中的 Plugins 菜单项访问插件目录。
向 Traefik 实例添加新插件¶
要向 Traefik 实例添加新插件,必须修改该实例的安装(静态)配置。每个插件的 Install(安装) 部分都提供安装(静态)配置示例。许多插件也在 Traefik 路由(动态)配置中拥有自己的配置部分。
实验性功能
插件可能以意想不到的方式改变 Traefik 的行为。向生产环境中的 Traefik 实例添加新插件时,请谨慎操作。
有关如何向 Traefik 实例添加新插件的更多信息,请参阅开发者文档。
插件系统¶
Traefik 支持两种不同的插件系统,分别面向不同的使用场景和开发者偏好。
Yaegi 插件系统¶
Traefik Yaegi 插件使用 Go 语言开发,本质上是一个 Go 包。与预编译插件不同,Yaegi 插件由嵌入在 Traefik 中的 Go 解释器 Yaegi 即时执行。
这种方式无需编译和复杂的工具链,使插件开发像创建浏览器扩展一样直接。Yaegi 插件支持中间件和提供者两类功能。
主要特点¶
- 使用 Go 语言编写
- 无需编译
- 由嵌入式解释器执行
- 支持完整的 Go 功能集
- 开发过程中支持热重载
WebAssembly(WASM)插件系统¶
Traefik WASM 插件可以使用任何能够编译为 WebAssembly(WASM)的语言开发。此方式基于 http-wasm。
WASM 插件会编译为可移植的二进制模块,在保持安全隔离的同时,以接近原生的性能执行。
主要特点¶
- 支持多种语言(Go、Rust、C++ 等)
- 编译为 WebAssembly 二进制文件
- 性能接近原生
- 强大的安全隔离能力
- 目前仅支持中间件
构建自己的插件¶
Traefik 用户可以创建自己的插件,并通过插件目录与社区分享。有关创建 Traefik 插件的更多信息,请参阅开发者文档。