stormbyte / traefik-http-config
用于生成 Traefik Http 提供器的库
Requires (Dev)
- phpunit/phpunit: ^9
README
此包旨在为 Traefik 提供一个易于使用的 HTTP 提供器。
HTTP 提供器可以设置为增量更新。
在 docker-compose
文件夹中,有一个自包含设置的示例,更新间隔为 5 秒。只要配置是有效的 JSON,就应该每 5 秒更新一次。
使用此包,配置将输出 Traefik 读取的合法 JSON。
Http
服务
https://doc.traefik.io/traefik/routing/services/
向配置中添加 Http 服务 $config->setHttpService( <my-service>, <backend-url>);
返回值是 HttpService 类,\Traefik\Http\Service
使用 addServer( <backend-url> )
可以添加更多后端 URL
路由器
https://doc.traefik.io/traefik/routing/routers/
向配置中添加 Http 路由器 $config->setHttpRouter( <my-router>, <rule>, <my-service> )
使用数组添加入口点 ->setEntryPoints( [ <my-entrypoint> ] )
使用数组添加中间件 ->setMiddlewares( [ <my-middleware> ] )
添加 TLS 以启用 SSL ->setTls(true)
中间件
https://doc.traefik.io/traefik/middlewares/overview/
向配置中添加 Http 中间件 $config->addMiddleWare( <my-middleware>, <MiddlewareConfigInterface> )
可能的类
\Traefik\Middleware\Config\AddPrefix
\Traefik\Middleware\Config\BasicAuth
\Traefik\Middleware\Config\Buffering
\Traefik\Middleware\Config\Chain
\Traefik\Middleware\Config\CircuitBreaker
\Traefik\Middleware\Config\Compress
\Traefik\Middleware\Config\DigestAuth
\Traefik\Middleware\Config\ErrorPage
\Traefik\Middleware\Config\ForwardAuth
\Traefik\Middleware\Config\Headers
\Traefik\Middleware\Config\InFlightReq
\Traefik\Middleware\Config\IpWhiteList
\Traefik\Middleware\Config\PassTLSClientCert
\Traefik\Middleware\Config\RateLimit
\Traefik\Middleware\Config\RedirectRegex
\Traefik\Middleware\Config\RedirectScheme
\Traefik\Middleware\Config\ReplacePath
\Traefik\Middleware\Config\ReplacePathRegex
\Traefik\Middleware\Config\Retry
\Traefik\Middleware\Config\StripPrefix
\Traefik\Middleware\Config\StripPrefixRegex
Tcp
服务
https://doc.traefik.io/traefik/routing/services/#configuring-tcp-services
$config->setTcpService( <my-service>, <backend-url>)
路由器
https://doc.traefik.io/traefik/routing/routers/#configuring-tcp-routers
$config->setTcpRouter( <my-tcp-router>, <rule>, <my-tcp-service> )
->setEntryPoints( [ <my-entrypoint> ] )
->setTls(true)
Udp
服务
https://doc.traefik.io/traefik/routing/services/#configuring-udp-services
$config->setUpdService( <my-service>, <backend-url>)
路由器
https://doc.traefik.io/traefik/routing/routers/#configuring-udp-routers
$config->setUdpRouter( <my-udp-router>, <rule>, <my-udp-service> )
->setEntryPoints( [ <my-entrypoint> ] )
->setTls(true)
返回配置
echo $config->getJsonConfig()
待办事项
支持
- 根 TLS 设置 https://doc.traefik.io/traefik/https/tls/
- 完整 http 路由器 TLS 设置 https://doc.traefik.io/traefik/routing/routers/#tls
- 完整 tcp 路由器 TLS 设置 https://doc.traefik.io/traefik/routing/routers/#tls
- 加权服务 https://doc.traefik.io/traefik/routing/services/#weighted-round-robin-service
- 镜像服务 https://doc.traefik.io/traefik/routing/services/#mirroring-service
- 服务健康检查 https://doc.traefik.io/traefik/routing/services/#health-check
- 服务粘性会话 https://doc.traefik.io/traefik/routing/services/#sticky-sessions