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"