用于前端和 /api 后端的 Traefik TOML 配置

以下 Traefik .toml 配置文件通过将 /api 请求重定向到运行在 localhost:61913 上的后端服务器,同时将 /api 以外的任何请求重定向到运行在 localhost:17029 上的前端来工作。你可以简单地将前端规则定义为

traefik_api.toml
rule = "Host(`myapp.mydomain.com`)"

将后端规则定义为

traefik_backend_rule.toml
rule = "Host(`myapp.mydomain.com`) && PathPrefix(`/api`)"

因为最长匹配的路由将获胜。

请参阅我们的文章使用 Lets Encrypt Cloudflare DNS-01 和 TLS-ALPN-01 和 HTTP-01 挑战的简单 Traefik docker-compose 设置了解我们的基本 Traefik 配置,该配置还定义了 alpn 证书解析器。使用此配置,将 myapp-frontend.tomlmyapp-backend.toml 都放在 config 目录中。

前端配置

myapp_frontend.toml
# 主机
[http.routers.myapp-frontend]
rule = "Host(`myapp.mydomain.com`)"
service = "myapp-frontend"

# 后端
[http.services]
[http.services.myapp-frontend.loadBalancer]
[[http.services.myapp-frontend.loadBalancer.servers]]
url = "http://127.0.0.1:17029/"

# 证书
[http.routers.myapp-frontend.tls]
certresolver = "alpn"

后端 Traefik config

myapp_backend.toml
# 主机
[http.routers.myapp-backend]
rule = "Host(`myapp.mydomain.com`) && PathPrefix(`/api`)"
service = "myapp-backend"

# 后端
[http.services]
[http.services.myapp-backend.loadBalancer]
[[http.services.myapp-backend.loadBalancer.servers]]
url = "http://127.0.0.1:61913/"

# 证书
[http.routers.myapp-backend.tls]
certresolver = "alpn"

Check out similar posts by category: Networking, Traefik