Having upgraded from traefik 2.8.2 to 3.4.1 I have run into an issue with the forceSlash
option being depreciated (Traefik V3 Migration Details - Traefik). My 2.8.2 router had the configuration below to reach the dashboard page. This would allow me to match the ansible variable {{ inventory_hostname }} eg dev001.staging.example.com/traefik and send the request to the dashboard.
---
http:
middlewares:
traefikAcp:
stripPrefix:
forceSlash: true
prefixes:
- /traefik
routers:
api:
entryPoints:
- http
- https
rule: (Host(`{{ inventory_hostname }}`) && PathPrefix(`/api`)
service: api@internal
tls: {}
dashboard:
entryPoints:
- http
- https
middlewares:
- traefikAcp
rule: (Host(`{{ inventory_hostname }}`) && PathPrefix(`/traefik`)
service: api@internal
tls: {}
Post upgrade to traefik 3.4.1, that now returns a 404 against dev001.staging.example.com/traefik. In order to get the to dashboard I have to add a training slash, so dev001.staging.example.com/traefik/
I tried the configuration below, but this also results in a 404 (when called as /traefik).
---
http:
middlewares:
traefikAcp:
stripPrefix:
prefixes:
- /traefik
addPrefix:
prefix: /
routers:
api:
entryPoints:
- http
- https
rule: (Host(`{{ inventory_hostname }}`) && PathPrefix(`/api`)
service: api@internal
tls: {}
dashboard:
entryPoints:
- http
- https
middlewares:
- traefikAcp
rule: (Host(`{{ inventory_hostname }}`) && PathPrefix(`/traefik`)
service: api@internal
tls: {}
Any suggestions on how I can modify this such that /traefik (rather than /traefik/) will render the dashboard page?
Thanks,