I have two apps running on marathon.
I want web.myblog.com
to route to App 1, and web.myblog.com/app
to route to app2.
With the below config, all traffic is going to app 1.
App 1
traefik.frontend.rule=HostRegexp:{subdomain:[a-z]+}.myblog.com
App 2
traefik.frontend.rule=Host:web.myblog.com;PathPrefix:/app
I tried using negative matching to exclude /app routing for app 1, but it is my understanding that negative lookahead isn't fully supported in golang and by result also not in traefik.
I also tried specifying a path prefix for app 1 like so
traefik.frontend.rule=Host:web.myblog.com;PathPrefix:/
but this has no effect.
When I modify the rule for App 1 to point to Host:test.myblog.com
all traffic goes to app 2 correctly, From that I conclude that the routing config to App 2 is correct, it is just being ignored because App 1 supersedes it since it also satisfies the route.
This issue is discussing this exact use case:
https://github.com/containous/traefik/issues/419#issuecomment-223843103
But it looks like a config without pathPrefix takes precedence over a config with pathPrefix, maybe this type of config is simply not supported on the marathon backend ?
It's not clear to me from this documentation:
https://github.com/fclaeys/traefik/blob/master/docs/basics.md.
Looking for an answer that will help me understand whether this use case is supported at all on the marathon backend, or an example working config for it.
Using Traefik v1.5.1
If multiple rules match traefic will use the length of the rule to determine which rule is most specific instead of the actual specificity. You can override this artificial priority by using
traefik.frontend.priority=1000
More info: https://github.com/containous/traefik/issues/1663