I've 3 paths objects, pointing to differnt servers or docker containers.
- guacamole -> works
- nextcloud -> works
3 svn -> Is not working, is always redirecting to nextcloud!!!
[file]
[frontends]
[frontends.frontend1]
entryPoint = "https"
backend = "backend1"
passHostHeader = true
[frontends.frontend1.routes.to_guacamole]
rule = "PathPrefixStrip:/guacamole;AddPrefix:/guacamole"
[frontends.frontend2]
backend = "backend2"
passHostHeader = true
[frontends.frontend2.routes.to_svn]
rule = "PathPrefixStrip:/svn/;AddPrefix:/svn"
[frontends.frontend3]
backend = "backend3"
passHostHeader = true
[frontends.frontend3.routes.to_nextcloud]
rule = "ReplacePathRegex: /nextcloud/(.*) /nextcloud/$1"
[backends]
# guacamole
[backends.backend1]
[backends.backend1.servers]
[backends.backend1.servers.server0]
url =` "http://x.x.x.x:8080"`
# svn
[backends.backend2]
[backends.backend2.servers]
[backends.backend2.servers.server0]
url =` "http://x.x.x.x"`
# nextcloud
[backends.backend3]
[backends.backend3.servers]
[backends.backend3.servers.server0]
url = "`http://x.x.x.x:8081"`
ldez
2
PathPrefixStrip:/guacamole;AddPrefix:/guacamole
== PathPrefix:/guacamole
ReplacePathRegex
is a Modifier and not a Matcher then frontend3
is a kind of catch-all.
[file]
[frontends]
[frontends.frontend1]
entryPoint = "https"
backend = "backend1"
passHostHeader = true
[frontends.frontend1.routes.to_guacamole]
rule = "PathPrefix:/guacamole"
[frontends.frontend2]
backend = "backend2"
passHostHeader = true
[frontends.frontend2.routes.to_svn]
rule = "PathPrefix:/svn"
[frontends.frontend3]
backend = "backend3"
passHostHeader = true
[frontends.frontend3.routes.to_nextcloud]
rule = "PathPrefix:/nextcloud"
[backends]
# guacamole
[backends.backend1]
[backends.backend1.servers]
[backends.backend1.servers.server0]
url =` "http://x.x.x.x:8080"`
# svn
[backends.backend2]
[backends.backend2.servers]
[backends.backend2.servers.server0]
url =` "http://x.x.x.x"`
# nextcloud
[backends.backend3]
[backends.backend3.servers]
[backends.backend3.servers.server0]
url = "`http://x.x.x.x:8081"`
I tried your suggestion, but only /guacamole is working.
With apache I use the following:
RewriteRule ^/guacamole$ /guacamole [R]
ProxyPass /guacamole http://localhost:8080/guacamole flushpackets=on
ProxyPassReverse /guacamole http://localhost:8080/guacamole
RewriteRule ^/svn$ /svn [R]
ProxyPass /svn https://x.x.x.x:8443/svn flushpackets=on
ProxyPassReverse /svn https://x.x.x.x:8443/svn
Is there a similar approach for traefik?
My current config:
[frontends]
[frontends.frontend1]
entryPoint = "https"
backend = "backend1"
passHostHeader = true
[frontends.frontend1.routes.to_guacamole]
rule = "PathPrefix:/guacamole"
[frontends.frontend2]
backend = "backend2"
passHostHeader = true
[frontends.frontend2.routes.to_svn]
rule = "PathPrefix:/svn/"
[frontends.frontend3]
backend = "backend3"
passHostHeader = true
[frontends.frontend3.routes.to_nextcloud]
rule = "PathPrefix:/nextcloud/"