Traefik TOML config for frontend and /api backend
The following Traefik .toml
config files work by redirecting /api
requests to the backend server running on localhost:61913
while redirecting any request besides /api
to the frontend running on localhost:17029
. You can simply define the frontend rule as
rule = "Host(`myapp.mydomain.com`)"
and the backend rule as
rule = "Host(`myapp.mydomain.com`) && PathPrefix(`/api`)"
since the longest matching route will win.
See our poist Simple Traefik docker-compose setup with Lets Encrypt Cloudflare DNS-01 & TLS-ALPN-01 & HTTP-01 challenges for our basic Traefik config, which also defines the alpn
certificate resolver. With this config, place both the myapp-frontend.toml
and myapp-backend.toml
in the config
directory.
Frontend config
# Host
[http.routers.myapp-frontend]
rule = "Host(`myapp.mydomain.com`)"
service = "myapp-frontend"
# Backend
[http.services]
[http.services.myapp-frontend.loadBalancer]
[[http.services.myapp-frontend.loadBalancer.servers]]
url = "http://127.0.0.1:17029/"
# Certificates
[http.routers.myapp-frontend.tls]
certresolver = "alpn"
Backend Traefik config
# Host
[http.routers.myapp-backend]
rule = "Host(`myapp.mydomain.com`) && PathPrefix(`/api`)"
service = "myapp-backend"
# Backend
[http.services]
[http.services.myapp-backend.loadBalancer]
[[http.services.myapp-backend.loadBalancer.servers]]
url = "http://127.0.0.1:61913/"
# Certificates
[http.routers.myapp-backend.tls]
certresolver = "alpn"