Issues with Router Priorities

Hello folks!

I'm having some issues with 2 of my HTTP routers. My end-goal here is that when /pictshare is in the URL it hits that router first, otherwise it will go to the first router there. Right now, it just directs everything to the first router.

I have them setup as such:

[http.routers.to-lemmy]
      entryPoints = [ "websecure"]
      rule = "Host(`lemmy.linuxbox.ninja`)"
      service = "lemmy"
      priority = 1
      [http.routers.to-lemmy.tls]
          certResolver = "letsencrypt"
          [[http.routers.to-lemmy.tls.domains]]
            main = "lemmy.linuxbox.ninja"
    [http.routers.to-lemmy-pictshare]
      entryPoints = [ "websecure"]
      rule = "Host(`lemmy.linuxbox.ninja`) && PathPrefix(`/pictshare`)"
      service = "lemmy-pictshare"
      middlewares = ["pictshare-stripprefix"]
      priority = 2

Of note, here's my middleware for pictshare:

[http.middlewares.pictshare-stripprefix.stripPrefix]
    prefixes = ["/pictshare"]

Here's a couple snippets from the Traefik access log, you can see when I first load the page it goes to the right router, but then 2nd entry, the POST, should be directed to the pictshare router:

192.168.100.1 - - [22/Feb/2020:06:10:27 +0000] "GET /u/astuffedtiger HTTP/2.0" 200 1194 "-" "-" 24 "to-lemmy@file" "http://192.168.100.13:8536/" 1ms
192.168.100.1 - - [22/Feb/2020:06:10:32 +0000] "POST /pictshare/api/upload.php HTTP/2.0" 404 0 "-" "-" 31 "to-lemmy@file" "http://192.168.100.13:8536/" 13ms

I have read through the docs (https://docs.traefik.io/routing/routers/#priority and https://docs.traefik.io/middlewares/stripprefix/) but can't seem to figure out where I've gone wrong.

If anything else is needed to help figure this out please don't hesitate to let me know!

Thanks! :blue_heart:

Bumpity bump?! Would love to see if we can figure this out! :slight_smile:

Hello,

could you provide the full configuration and traefik logs (not access logs), thanks.

Absolutely, here's the full configuration:

traefik.yaml:

################################################################
#
# Configuration sample for Traefik v2.
#
################################################################

################################################################
# Global configuration
################################################################
[global]
  checkNewVersion = true
  sendAnonymousUsage = true

################################################################
# Servers Transport
################################################################
[serversTransport]
  insecureSkipVerify = true

################################################################
# Entrypoints configuration
################################################################
[entryPoints]
  [entryPoints.web]
    address = ":80"
  [entryPoints.web.forwardedHeaders]
    insecure = true
  [entryPoints.web.transport]
    [entryPoints.web.transport.respondingTimeouts]
      readTimeout = 30
      writeTimeout = 30
      idleTimeout = 30

  [entryPoints.websecure]
    address = ":443"
  [entryPoints.websecure.forwardedHeaders]
    insecure = true
  [entryPoints.websecure.transport]
    [entryPoints.websecure.transport.respondingTimeouts]
      readTimeout = 30
      writeTimeout = 30
      idleTimeout = 30

  [entryPoints.traefik]
    address = ":8080"
  [entryPoints.traefik.forwardedHeaders]
    insecure = true
  [entryPoints.traefik.transport]
    [entryPoints.traefik.transport.respondingTimeouts]
      readTimeout = 30
      writeTimeout = 30
      idleTimeout = 30

################################################################
# Traefik logs configuration
################################################################
[log]
  filePath = "/logs/traefik.log"
  level = "WARNING"

################################################################
# Access logs configuration
################################################################
[accessLog]
  filePath = "/logs/traefik_access.log"

################################################################
# API and dashboard configuration
################################################################
[api]
  dashboard = true

################################################################
# Ping configuration
################################################################
[ping]
  entrypoint = "web"

################################################################
# File configuration backend
################################################################
[providers]
  [providers.file]
    filename = "http.toml"
    directory = "/etc/traefik"

################################################################
# Certificates Resolvers
################################################################
[certificatesResolvers]
  [certificatesResolvers.letsencrypt]
    [certificatesResolvers.letsencrypt.acme]
      email = "jimmyxxxxxxxxxxxx@icloud.com"
      storage = "/etc/traefik/acme/acme.json"
      caServer = "https://acme-v02.api.letsencrypt.org/directory"
        [certificatesResolvers.letsencrypt.acme.httpChallenge]
          entryPoint = "web"

http.yaml:

################################################################
# HTTP
################################################################
[http]

################################################################
# HTTP Routers
################################################################
  [http.routers]
    [http.routers.redirecttohttps]
      entryPoints = ["web"]
      middlewares = ["httpsredirect"]
      rule = "HostRegexp(`{host:.+}`)"
      service = "noop"
    [http.routers.my-api]
      rule = "Host(`traefik.mydomain.com`)"
      service="api@internal"
      middlewares = ["auth"]
    [http.routers.to-dillinger]
      entryPoints = [ "websecure"]
      rule = "Host(`dillinger.mydomain.com`)"
      service = "dillinger"
      [http.routers.to-dillinger.tls]
          certResolver = "letsencrypt"
          [[http.routers.to-dillinger.tls.domains]]
            main = "dillinger.mydomain.com"
    [http.routers.to-drone]
      entryPoints = [ "websecure"]
      rule = "Host(`drone.mydomain.com`)"
      service = "drone"
      [http.routers.to-drone.tls]
          certResolver = "letsencrypt"
          [[http.routers.to-drone.tls.domains]]
            main = "drone.mydomain.com"
    [http.routers.to-drone-runners]
      entryPoints = [ "websecure"]
      rule = "Host(`drone-runners.mydomain.com`)"
      service = "drone-runners"
      [http.routers.to-drone-runners.tls]
          certResolver = "letsencrypt"
          [[http.routers.to-drone-runners.tls.domains]]
            main = "drone-runners.mydomain.com"
    [http.routers.to-features-mvgl]
      entryPoints = [ "websecure"]
      rule = "Host(`features.mydomain.com`)"
      service = "features-mvgl"
      [http.routers.to-features-mvgl.tls]
          certResolver = "letsencrypt"
          [[http.routers.to-features-mvgl.tls.domains]]
            main = "features.mydomain.com"
    [http.routers.to-healthchecks]
      entryPoints = [ "websecure"]
      rule = "Host(`hc.mydomain.com`)"
      service = "healthchecks"
      [http.routers.to-healthchecks.tls]
          certResolver = "letsencrypt"
          [[http.routers.to-healthchecks.tls.domains]]
            main = "hc.mydomain.com"
    [http.routers.to-heimdall]
      entryPoints = [ "websecure"]
      rule = "Host(`heimdall.mydomain.com`)"
      service = "heimdall"
      [http.routers.to-heimdall.tls]
          certResolver = "letsencrypt"
          [[http.routers.to-heimdall.tls.domains]]
            main = "heimdall.mydomain.com"
    [http.routers.to-internal-mvgl]
      entryPoints = [ "websecure"]
      rule = "Host(`internal.mydomain.com`)"
      service = "internal-mvgl"
      [http.routers.to-internal-mvgl.tls]
          certResolver = "letsencrypt"
          [[http.routers.to-internal-mvgl.tls.domains]]
            main = "internal.mydomain.com"
    [http.routers.to-lemmy]
      entryPoints = [ "websecure"]
      rule = "Host(`lemmy.mydomain.com`)"
      service = "lemmy"
      priority = 1
      [http.routers.to-lemmy.tls]
          certResolver = "letsencrypt"
          [[http.routers.to-lemmy.tls.domains]]
            main = "lemmy.mydomain.com"
    [http.routers.to-lemmy-pictshare]
      entryPoints = [ "websecure"]
      rule = "Host(`lemmy.mydomain.com`) && PathPrefix(`/pictshare`)"
      service = "lemmy-pictshare"
      middlewares = ["pictshare-stripprefix"]
      priority = 2
    [http.routers.to-lemmy-iframely]
      entryPoints = [ "websecure"]
      rule = "Host(`lemmy.mydomain.com`) && PathPrefix(`/iframely`)"
      service = "lemmy-iframely"
    [http.routers.to-mastodon]
      entryPoints = [ "websecure"]
      rule = "Host(`mastodon.mydomain.com`)"
      service = "mastodon"
      [http.routers.to-mastodon.tls]
          certResolver = "letsencrypt"
          [[http.routers.to-mastodon.tls.domains]]
            main = "mastodon.mydomain.com"
      [http.routers.to-mastodon-streaming]
      entryPoints = [ "websecure"]
      rule = "Host(`mastodon-streaming.mydomain.com`)"
      service = "mastodon-streaming"
      [http.routers.to-mastodon-streaming.tls]
          certResolver = "letsencrypt"
          [[http.routers.to-mastodon-streaming.tls.domains]]
            main = "mastodon-streaming.mydomain.com"
    [http.routers.to-microk8s]
      entryPoints = [ "websecure"]
      rule = "Host(`microk8s.mydomain.com`)"
      service = "microk8s"
      [http.routers.to-microk8s.tls]
          certResolver = "letsencrypt"
          [[http.routers.to-microk8s.tls.domains]]
            main = "microk8s.mydomain.com"
    [http.routers.to-nzbget]
      entryPoints = [ "websecure"]
      rule = "Host(`nzbget.mydomain.com`)"
      service = "nzbget"
      [http.routers.to-nzbget.tls]
          certResolver = "letsencrypt"
          [[http.routers.to-nzbget.tls.domains]]
            main = "nzbget.mydomain.com"
    [http.routers.to-ombi]
      entryPoints = [ "websecure"]
      rule = "Host(`ombi.mydomain.com`)"
      service = "ombi"
      [http.routers.to-ombi.tls]
          certResolver = "letsencrypt"
          [[http.routers.to-ombi.tls.domains]]
            main = "ombi.mydomain.com"
    [http.routers.to-organizr]
      entryPoints = [ "websecure"]
      rule = "Host(`organizr.mydomain.com`)"
      service = "organizr"
      [http.routers.to-organizr.tls]
          certResolver = "letsencrypt"
          [[http.routers.to-organizr.tls.domains]]
            main = "organizr.mydomain.com"
    [http.routers.to-portainer]
      entryPoints = [ "websecure"]
      rule = "Host(`portainer.mydomain.com`)"
      service = "portainer"
      [http.routers.to-portainer.tls]
          certResolver = "letsencrypt"
          [[http.routers.to-portainer.tls.domains]]
            main = "portainer.mydomain.com"
    [http.routers.to-portus]
      entryPoints = [ "websecure"]
      rule = "Host(`portus.mydomain.com`)"
      service = "portus"
      [http.routers.to-portus.tls]
          certResolver = "letsencrypt"
          [[http.routers.to-portus.tls.domains]]
            main = "portus.mydomain.com"
    [http.routers.to-raspberry]
      entryPoints = [ "websecure"]
      rule = "Host(`raspberry.mydomain.com`)"
      service = "raspberry"
      [http.routers.to-raspberry.tls]
          certResolver = "letsencrypt"
          [[http.routers.to-raspberry.tls.domains]]
            main = "raspberry.mydomain.com"
      [http.routers.to-registry]
      entryPoints = [ "websecure"]
      rule = "Host(`registry.mydomain.com`)"
      service = "registry"
      [http.routers.to-registry.tls]
          certResolver = "letsencrypt"
          [[http.routers.to-registry.tls.domains]]
            main = "registry.mydomain.com"
    [http.routers.to-sonarqube]
      entryPoints = [ "websecure"]
      rule = "Host(`sonarqube.mydomain.com`)"
      service = "sonarqube"
      [http.routers.to-sonarqube.tls]
          certResolver = "letsencrypt"
          [[http.routers.to-sonarqube.tls.domains]]
            main = "sonarqube.mydomain.com"
    [http.routers.to-sonarr]
      entryPoints = [ "websecure"]
      rule = "Host(`sonarr.mydomain.com`)"
      service = "sonarr"
      [http.routers.to-sonarr.tls]
          certResolver = "letsencrypt"
          [[http.routers.to-sonarr.tls.domains]]
            main = "sonarr.mydomain.com"
    [http.routers.to-status-linuxbox]
      entryPoints = [ "websecure"]
      rule = "Host(`status.mydomain.com`)"
      service = "status-linuxbox"
      [http.routers.to-status-linuxbox.tls]
          certResolver = "letsencrypt"
          [[http.routers.to-status-linuxbox.tls.domains]]
            main = "status.mydomain.com"
    [http.routers.to-status-mvgl]
      entryPoints = [ "websecure"]
      rule = "Host(`status.mydomain.com`)"
      service = "status-mvgl"
      [http.routers.to-status-mvgl.tls]
          certResolver = "letsencrypt"
          [[http.routers.to-status-mvgl.tls.domains]]
            main = "status.mydomain.com"
    [http.routers.to-status-nzxt]
      entryPoints = [ "websecure"]
      rule = "Host(`status.mydomain.com`)"
      service = "status-nzxt"
      [http.routers.to-status-nzxt.tls]
          certResolver = "letsencrypt"
          [[http.routers.to-status-nzxt.tls.domains]]
            main = "status.nzxt.dev"
    [http.routers.to-synapse]
      entryPoints = [ "websecure"]
      rule = "Host(`synapse.mydomain.com`)"
      service = "synapse"
      [http.routers.to-synapse.tls]
          certResolver = "letsencrypt"
          [[http.routers.to-synapse.tls.domains]]
            main = "synapse.mydomain.com"
    [http.routers.to-tautulli]
      entryPoints = [ "websecure"]
      rule = "Host(`tautulli.mydomain.com`)"
      service = "tautulli"
      [http.routers.to-tautulli.tls]
          certResolver = "letsencrypt"
          [[http.routers.to-tautulli.tls.domains]]
            main = "tautulli.mydomain.com"
    [http.routers.to-traefik]
      entryPoints = ["websecure"]
      rule = "Host(`traefik.mydomain.com`) && (PathPrefix(`/api`) || PathPrefix(`/dashboard`))"
      service = "traefik"
      [http.routers.to-traefik.tls]
          certResolver = "letsencrypt"
          [[http.routers.to-traefik.tls.domains]]
            main = "traefik.mydomain.com"
    [http.routers.to-transmission]
      entryPoints = [ "websecure"]
      rule = "Host(`transmission.mydomain.com`)"
      service = "transmission"
      [http.routers.to-transmission.tls]
          certResolver = "letsencrypt"
          [[http.routers.to-transmission.tls.domains]]
            main = "transmission.mydomain.com"
    [http.routers.to-unifi]
      entryPoints = [ "websecure"]
      rule = "Host(`unifi.mydomain.com`)"
      service = "unifi"
      [http.routers.to-unifi.tls]
          certResolver = "letsencrypt"
          [[http.routers.to-unifi.tls.domains]]
            main = "unifi.mydomain.com"

################################################################
# HTTP Services
################################################################
  [http.services]
    [http.services.noop.loadBalancer]
      [[http.services.noop.loadBalancer.servers]]
        url = "http://192.168.0.1"
    [http.services.dillinger.loadBalancer]
      [[http.services.dillinger.loadBalancer.servers]]
        url = "http://192.168.100.13:8082/"
    [http.services.drone.loadBalancer]
      [[http.services.drone.loadBalancer.servers]]
        url = "http://192.168.100.13:3080/"
    [http.services.drone-runners.loadBalancer]
      [[http.services.drone-runners.loadBalancer.servers]]
        url = "https://192.168.100.13:3555/"
    [http.services.features-mvgl.loadBalancer]
      [[http.services.features-mvgl.loadBalancer.servers]]
        url = "http://192.168.100.13:9999/"
    [http.services.healthchecks.loadBalancer]
      [[http.services.healthchecks.loadBalancer.servers]]
        url = "http://192.168.100.13:8000/"
    [http.services.heimdall.loadBalancer]
      [[http.services.heimdall.loadBalancer.servers]]
        url = "http://192.168.100.13:81/"
    [http.services.lemmy.loadBalancer]
      [[http.services.lemmy.loadBalancer.servers]]
        url = "http://192.168.100.13:8536/"
    [http.services.lemmy-pictshare.loadBalancer]
      [[http.services.lemmy-pictshare.loadBalancer.servers]]
        url = "http://192.168.100.13:8537/"
    [http.services.lemmy-iframely.loadBalancer]
      [[http.services.lemmy-iframely.loadBalancer.servers]]
        url = "http://192.168.100.13:8061/"
    [http.services.mastodon.loadBalancer]
      [[http.services.mastodon.loadBalancer.servers]]
        url = "http://192.168.100.13:3001/"
    [http.services.mastodon-streaming.loadBalancer]
      [[http.services.mastodon-streaming.loadBalancer.servers]]
        url = "http://192.168.100.13:4000/"
    [http.services.microk8s.loadBalancer]
      [[http.services.microk8s.loadBalancer.servers]]
        url = "https://192.168.100.13:10443/"
    [http.services.internal-mvgl.loadBalancer]
      [[http.services.internal-mvgl.loadBalancer.servers]]
        url = "http://192.168.100.13:8083/"
    [http.services.nzbget.loadBalancer]
      [[http.services.nzbget.loadBalancer.servers]]
        url = "http://192.168.100.13:6789/"
    [http.services.ombi.loadBalancer]
      [[http.services.ombi.loadBalancer.servers]]
        url = "http://192.168.100.13:3579/"
    [http.services.organizr.loadBalancer]
      [[http.services.organizr.loadBalancer.servers]]
        url = "http://192.168.100.13:9983/"
    [http.services.portainer.loadBalancer]
      [[http.services.portainer.loadBalancer.servers]]
        url = "http://192.168.100.13:9000/"
    [http.services.portus.loadBalancer]
      [[http.services.portus.loadBalancer.servers]]
        url = "http://192.168.100.13:3002/"
    [http.services.raspberry.loadBalancer]
      [[http.services.raspberry.loadBalancer.servers]]
        url = "http://192.168.100.9/"
    [http.services.registry.loadBalancer]
      [[http.services.registry.loadBalancer.servers]]
        url = "http://192.168.100.13:5003/"
    [http.services.sonarqube.loadBalancer]
      [[http.services.sonarqube.loadBalancer.servers]]
        url = "http://192.168.100.13:9002/"
    [http.services.sonarr.loadBalancer]
      [[http.services.sonarr.loadBalancer.servers]]
        url = "http://192.168.100.13:8989/"
    [http.services.status-linuxbox.loadBalancer]
      [[http.services.status-linuxbox.loadBalancer.servers]]
        url = "http://192.168.100.13:5000/"
    [http.services.status-mvgl.loadBalancer]
      [[http.services.status-mvgl.loadBalancer.servers]]
        url = "http://192.168.100.13:5001/"
    [http.services.status-nzxt.loadBalancer]
      [[http.services.status-nzxt.loadBalancer.servers]]
        url = "http://192.168.100.13:5002/"
    [http.services.synapse.loadBalancer]
      [[http.services.synapse.loadBalancer.servers]]
        url = "http://192.168.100.13:8008/"
    [http.services.tautulli.loadBalancer]
      [[http.services.tautulli.loadBalancer.servers]]
        url = "http://192.168.100.20:8181/"
    [http.services.traefik.loadBalancer]
      [[http.services.traefik.loadBalancer.servers]]
        url = "http://192.168.100.13:8080/"
    [http.services.transmission.loadBalancer]
      [[http.services.transmission.loadBalancer.servers]]
        url = "http://192.168.100.13:9091/"
    [http.services.unifi.loadBalancer]
      [[http.services.unifi.loadBalancer.servers]]
        url = "https://192.168.100.13:8443/"

################################################################
# HTTP Middlewares
################################################################
  [http.middlewares]
    [http.middlewares.auth.basicAuth]
      users = [
        "jimmy:lsdkjfl;sdjfsdlfkjlsdfjlsdfjslkdjfdsf"
      ]
    [http.middlewares.httpsredirect.redirectScheme]
      scheme = "https"
  [http.middlewares.pictshare-stripprefix.stripPrefix]
    prefixes = ["/pictshare"]

traefik.log:

time="2020-03-02T15:54:33-06:00" level=debug msg="vulcand/oxy/roundrobin/rr: begin ServeHttp on request" Request="{\"Method\":\"POST\",\"URL\":{\"Scheme\":\"\",\"Opaque\":\"\",\"User\":null,\"Host\":\"\",\"Path\":\"/pictshare/api/upload.php\",\"RawPath\":\"\",\"ForceQuery\":false,\"RawQuery\":\"\",\"Fragment\":\"\"},\"Proto\":\"HTTP/2.0\",\"ProtoMajor\":2,\"ProtoMinor\":0,\"Header\":{\"Accept\":[\"*/*\"],\"Accept-Encoding\":[\"gzip, deflate, br\"],\"Accept-Language\":[\"en-us\"],\"Content-Length\":[\"60769\"],\"Content-Type\":[\"multipart/form-data; boundary=----WebKitFormBoundary3vzqyONEQOPanLPD\"],\"Cookie\":[\"jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6MywidXNlcm5hbWUiOiJhc3R1ZmZlZHRpZ2VyIiwiaXNzIjoibGVtbXkubGludX"],\"Origin\":[\"https://lemmy.linuxbox.ninja\"],\"Referer\":[\"https://lemmy.linuxbox.ninja/u/astuffedtiger\"],\"User-Agent\":[\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.5 Safari/605.1.15\"],\"X-Forwarded-Host\":[\"lemmy.linuxbox.ninja\"],\"X-Forwarded-Port\":[\"443\"],\"X-Forwarded-Proto\":[\"https\"],\"X-Forwarded-Server\":[\"traefik.mydomain.com\"],\"X-Real-Ip\":[\"184.3.4.5\"]},\"ContentLength\":60769,\"TransferEncoding\":null,\"Host\":\"lemmy.linuxbox.ninja\",\"Form\":null,\"PostForm\":null,\"MultipartForm\":null,\"Trailer\":null,\"RemoteAddr\":\"184.3.4.5:57705\",\"RequestURI\":\"/pictshare/api/upload.php\",\"TLS\":null}"

time="2020-03-02T15:54:33-06:00" level=debug msg="vulcand/oxy/roundrobin/rr: Forwarding this request to URL" ForwardURL="http://192.168.100.13:8536/" Request="{\"Method\":\"POST\",\"URL\":{\"Scheme\":\"\",\"Opaque\":\"\",\"User\":null,\"Host\":\"\",\"Path\":\"/pictshare/api/upload.php\",\"RawPath\":\"\",\"ForceQuery\":false,\"RawQuery\":\"\",\"Fragment\":\"\"},\"Proto\":\"HTTP/2.0\",\"ProtoMajor\":2,\"ProtoMinor\":0,\"Header\":{\"Accept\":[\"*/*\"],\"Accept-Encoding\":[\"gzip, deflate, br\"],\"Accept-Language\":[\"en-us\"],\"Content-Length\":[\"60769\"],\"Content-Type\":[\"multipart/form-data; boundary=----WebKitFormBoundary3vzqyONEQOPanLPD\"],\"Cookie\":[\"jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6MywidXNlcm5hbWUiOiJhc3R1ZmZlZHRpZ2VyIiwiaXNzIjoibGVtbXkubGludXhib3gubmluamE"],\"Origin\":[\"https://lemmy.linuxbox.ninja\"],\"Referer\":[\"https://lemmy.linuxbox.ninja/u/astuffedtiger\"],\"User-Agent\":[\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.5 Safari/605.1.15\"],\"X-Forwarded-Host\":[\"lemmy.linuxbox.ninja\"],\"X-Forwarded-Port\":[\"443\"],\"X-Forwarded-Proto\":[\"https\"],\"X-Forwarded-Server\":[\"traefik.mydomain.com\"],\"X-Real-Ip\":[\"184.3.4.5\"]},\"ContentLength\":60769,\"TransferEncoding\":null,\"Host\":\"lemmy.linuxbox.ninja\",\"Form\":null,\"PostForm\":null,\"MultipartForm\":null,\"Trailer\":null,\"RemoteAddr\":\"184.3.4.5:57705\",\"RequestURI\":\"/pictshare/api/upload.php\",\"TLS\":null}"

time="2020-03-02T15:54:33-06:00" level=debug msg="vulcand/oxy/roundrobin/rr: completed ServeHttp on request" Request="{\"Method\":\"POST\",\"URL\":{\"Scheme\":\"\",\"Opaque\":\"\",\"User\":null,\"Host\":\"\",\"Path\":\"/pictshare/api/upload.php\",\"RawPath\":\"\",\"ForceQuery\":false,\"RawQuery\":\"\",\"Fragment\":\"\"},\"Proto\":\"HTTP/2.0\",\"ProtoMajor\":2,\"ProtoMinor\":0,\"Header\":{\"Accept\":[\"*/*\"],\"Accept-Encoding\":[\"gzip, deflate, br\"],\"Accept-Language\":[\"en-us\"],\"Content-Length\":[\"60769\"],\"Content-Type\":[\"multipart/form-data; boundary=----WebKitFormBoundary3vzqyONEQOPanLPD\"],\"Cookie\":[\"jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6MywidXNlcm5hbWUiOiJhc3R1ZmZlZHRpZ2VyIiwiaXNzIjoibGVtbXkubGludXhib"],\"Origin\":[\"https://lemmy.linuxbox.ninja\"],\"Referer\":[\"https://lemmy.linuxbox.ninja/u/astuffedtiger\"],\"User-Agent\":[\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.5 Safari/605.1.15\"],\"X-Forwarded-Host\":[\"lemmy.linuxbox.ninja\"],\"X-Forwarded-Port\":[\"443\"],\"X-Forwarded-Proto\":[\"https\"],\"X-Forwarded-Server\":[\"traefik.mydomain.com\"],\"X-Real-Ip\":[\"184.3.4.5\"]},\"ContentLength\":60769,\"TransferEncoding\":null,\"Host\":\"lemmy.linuxbox.ninja\",\"Form\":null,\"PostForm\":null,\"MultipartForm\":null,\"Trailer\":null,\"RemoteAddr\":\"184.3.4.5:57705\",\"RequestURI\":\"/pictshare/api/upload.php\",\"TLS\":null}"

Could provider the log from the start of traefik

Here you are!

time="2020-03-02T16:04:59-06:00" level=debug msg="Added outgoing tracing middleware ping@internal" entryPointName=web routerName=ping@internal middlewareType=TracingForwarder middlewareName=tracing
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating middleware" serviceName=noop entryPointName=web middlewareName=pipelining middlewareType=Pipelining routerName=redirecttohttps@file
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating load-balancer" routerName=redirecttohttps@file serviceName=noop entryPointName=web
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating server 0 http://192.168.0.1" entryPointName=web routerName=redirecttohttps@file serviceName=noop serverName=0
time="2020-03-02T16:04:59-06:00" level=debug msg="Added outgoing tracing middleware noop" middlewareName=tracing middlewareType=TracingForwarder entryPointName=web routerName=redirecttohttps@file
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating middleware" routerName=redirecttohttps@file entryPointName=web middlewareName=httpsredirect@file middlewareType=RedirectScheme
time="2020-03-02T16:04:59-06:00" level=debug msg="Setting up redirection to https " routerName=redirecttohttps@file entryPointName=web middlewareName=httpsredirect@file middlewareType=RedirectScheme
time="2020-03-02T16:04:59-06:00" level=debug msg="Added outgoing tracing middleware api@internal" routerName=my-api@file middlewareName=tracing middlewareType=TracingForwarder entryPointName=web
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating middleware" entryPointName=web routerName=my-api@file middlewareName=auth@file middlewareType=BasicAuth
time="2020-03-02T16:04:59-06:00" level=debug msg="Adding tracing to middleware" middlewareName=auth@file entryPointName=web routerName=my-api@file
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating middleware" entryPointName=web middlewareName=traefik-internal-recovery middlewareType=Recovery
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating middleware" middlewareType=Pipelining entryPointName=websecure routerName=to-lemmy-pictshare@file serviceName=lemmy-pictshare middlewareName=pipelining
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating load-balancer" entryPointName=websecure routerName=to-lemmy-pictshare@file serviceName=lemmy-pictshare
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating server 0 http://192.168.100.13:8537/" serviceName=lemmy-pictshare serverName=0 entryPointName=websecure routerName=to-lemmy-pictshare@file
time="2020-03-02T16:04:59-06:00" level=debug msg="Added outgoing tracing middleware lemmy-pictshare" routerName=to-lemmy-pictshare@file middlewareType=TracingForwarder middlewareName=tracing entryPointName=websecure
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating middleware" entryPointName=websecure routerName=to-lemmy-pictshare@file middlewareName=pictshare-stripprefix@file middlewareType=StripPrefix
time="2020-03-02T16:04:59-06:00" level=debug msg="Adding tracing to middleware" routerName=to-lemmy-pictshare@file middlewareName=pictshare-stripprefix@file entryPointName=websecure
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating middleware" entryPointName=websecure routerName=to-lemmy-iframely@file serviceName=lemmy-iframely middlewareName=pipelining middlewareType=Pipelining
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating load-balancer" routerName=to-lemmy-iframely@file serviceName=lemmy-iframely entryPointName=websecure
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating server 0 http://192.168.100.13:8061/" routerName=to-lemmy-iframely@file serviceName=lemmy-iframely entryPointName=websecure serverName=0
time="2020-03-02T16:04:59-06:00" level=debug msg="Added outgoing tracing middleware lemmy-iframely" middlewareName=tracing middlewareType=TracingForwarder entryPointName=websecure routerName=to-lemmy-iframely@file
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating middleware" entryPointName=websecure middlewareName=traefik-internal-recovery middlewareType=Recovery
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating middleware" middlewareType=Recovery entryPointName=traefik middlewareName=traefik-internal-recovery
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating middleware" routerName=to-ombi@file serviceName=ombi entryPointName=websecure middlewareName=pipelining middlewareType=Pipelining
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating load-balancer" entryPointName=websecure routerName=to-ombi@file serviceName=ombi
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating server 0 http://192.168.100.13:3579/" entryPointName=websecure routerName=to-ombi@file serviceName=ombi serverName=0
time="2020-03-02T16:04:59-06:00" level=debug msg="Added outgoing tracing middleware ombi" routerName=to-ombi@file middlewareName=tracing middlewareType=TracingForwarder entryPointName=websecure
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating middleware" middlewareName=pipelining middlewareType=Pipelining routerName=to-transmission@file serviceName=transmission entryPointName=websecure
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating load-balancer" entryPointName=websecure routerName=to-transmission@file serviceName=transmission
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating server 0 http://192.168.100.13:9091/" serverName=0 routerName=to-transmission@file serviceName=transmission entryPointName=websecure
time="2020-03-02T16:04:59-06:00" level=debug msg="Added outgoing tracing middleware transmission" middlewareName=tracing middlewareType=TracingForwarder entryPointName=websecure routerName=to-transmission@file
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating middleware" middlewareName=pipelining middlewareType=Pipelining routerName=to-status-linuxbox@file serviceName=status-linuxbox entryPointName=websecure
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating load-balancer" routerName=to-status-linuxbox@file serviceName=status-linuxbox entryPointName=websecure
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating server 0 http://192.168.100.13:5000/" entryPointName=websecure routerName=to-status-linuxbox@file serviceName=status-linuxbox serverName=0
time="2020-03-02T16:04:59-06:00" level=debug msg="Added outgoing tracing middleware status-linuxbox" routerName=to-status-linuxbox@file entryPointName=websecure middlewareName=tracing middlewareType=TracingForwarder
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating middleware" middlewareName=pipelining middlewareType=Pipelining serviceName=nzbget entryPointName=websecure routerName=to-nzbget@file
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating load-balancer" serviceName=nzbget entryPointName=websecure routerName=to-nzbget@file
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating server 0 http://192.168.100.13:6789/" entryPointName=websecure routerName=to-nzbget@file serverName=0 serviceName=nzbget
time="2020-03-02T16:04:59-06:00" level=debug msg="Added outgoing tracing middleware nzbget" entryPointName=websecure middlewareName=tracing middlewareType=TracingForwarder routerName=to-nzbget@file
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating middleware" entryPointName=websecure middlewareName=pipelining middlewareType=Pipelining routerName=to-registry@file serviceName=registry
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating load-balancer" routerName=to-registry@file serviceName=registry entryPointName=websecure
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating server 0 http://192.168.100.13:5003/" routerName=to-registry@file serviceName=registry serverName=0 entryPointName=websecure
time="2020-03-02T16:04:59-06:00" level=debug msg="Added outgoing tracing middleware registry" entryPointName=websecure routerName=to-registry@file middlewareName=tracing middlewareType=TracingForwarder
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating middleware" serviceName=synapse middlewareName=pipelining middlewareType=Pipelining entryPointName=websecure routerName=to-synapse@file
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating load-balancer" entryPointName=websecure routerName=to-synapse@file serviceName=synapse
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating server 0 http://192.168.100.13:8008/" entryPointName=websecure serverName=0 routerName=to-synapse@file serviceName=synapse
time="2020-03-02T16:04:59-06:00" level=debug msg="Added outgoing tracing middleware synapse" entryPointName=websecure routerName=to-synapse@file middlewareName=tracing middlewareType=TracingForwarder
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating middleware" serviceName=heimdall middlewareName=pipelining middlewareType=Pipelining entryPointName=websecure routerName=to-heimdall@file
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating load-balancer" serviceName=heimdall entryPointName=websecure routerName=to-heimdall@file
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating server 0 http://192.168.100.13:81/" entryPointName=websecure routerName=to-heimdall@file serviceName=heimdall serverName=0
time="2020-03-02T16:04:59-06:00" level=debug msg="Added outgoing tracing middleware heimdall" routerName=to-heimdall@file entryPointName=websecure middlewareName=tracing middlewareType=TracingForwarder
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating middleware" middlewareType=Pipelining entryPointName=websecure routerName=to-healthchecks@file serviceName=healthchecks middlewareName=pipelining
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating load-balancer" entryPointName=websecure routerName=to-healthchecks@file serviceName=healthchecks
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating server 0 http://192.168.100.13:8000/" serverName=0 serviceName=healthchecks entryPointName=websecure routerName=to-healthchecks@file
time="2020-03-02T16:04:59-06:00" level=debug msg="Added outgoing tracing middleware healthchecks" routerName=to-healthchecks@file middlewareType=TracingForwarder middlewareName=tracing entryPointName=websecure
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating middleware" middlewareType=Pipelining entryPointName=websecure routerName=to-portus@file serviceName=portus middlewareName=pipelining
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating load-balancer" entryPointName=websecure routerName=to-portus@file serviceName=portus
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating server 0 http://192.168.100.13:3002/" serverName=0 entryPointName=websecure routerName=to-portus@file serviceName=portus
time="2020-03-02T16:04:59-06:00" level=debug msg="Added outgoing tracing middleware portus" middlewareType=TracingForwarder entryPointName=websecure routerName=to-portus@file middlewareName=tracing
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating middleware" entryPointName=websecure routerName=to-mastodon-streaming@file serviceName=mastodon-streaming middlewareName=pipelining middlewareType=Pipelining
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating load-balancer" entryPointName=websecure routerName=to-mastodon-streaming@file serviceName=mastodon-streaming
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating server 0 http://192.168.100.13:4000/" serviceName=mastodon-streaming entryPointName=websecure routerName=to-mastodon-streaming@file serverName=0
time="2020-03-02T16:04:59-06:00" level=debug msg="Added outgoing tracing middleware mastodon-streaming" entryPointName=websecure routerName=to-mastodon-streaming@file middlewareType=TracingForwarder middlewareName=tracing
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating middleware" entryPointName=websecure routerName=to-dillinger@file serviceName=dillinger middlewareName=pipelining middlewareType=Pipelining
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating load-balancer" entryPointName=websecure routerName=to-dillinger@file serviceName=dillinger
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating server 0 http://192.168.100.13:8082/" routerName=to-dillinger@file serviceName=dillinger serverName=0 entryPointName=websecure
time="2020-03-02T16:04:59-06:00" level=debug msg="Added outgoing tracing middleware dillinger" middlewareType=TracingForwarder entryPointName=websecure routerName=to-dillinger@file middlewareName=tracing
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating middleware" middlewareName=pipelining middlewareType=Pipelining entryPointName=websecure routerName=to-raspberry@file serviceName=raspberry
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating load-balancer" entryPointName=websecure routerName=to-raspberry@file serviceName=raspberry
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating server 0 http://192.168.100.9/" serviceName=raspberry serverName=0 entryPointName=websecure routerName=to-raspberry@file
time="2020-03-02T16:04:59-06:00" level=debug msg="Added outgoing tracing middleware raspberry" entryPointName=websecure routerName=to-raspberry@file middlewareName=tracing middlewareType=TracingForwarder
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating middleware" middlewareName=pipelining middlewareType=Pipelining routerName=to-internal-mvgl@file serviceName=internal-mvgl entryPointName=websecure
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating load-balancer" routerName=to-internal-mvgl@file serviceName=internal-mvgl entryPointName=websecure
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating server 0 http://192.168.100.13:8083/" routerName=to-internal-mvgl@file serviceName=internal-mvgl serverName=0 entryPointName=websecure
time="2020-03-02T16:04:59-06:00" level=debug msg="Added outgoing tracing middleware internal-mvgl" routerName=to-internal-mvgl@file middlewareName=tracing middlewareType=TracingForwarder entryPointName=websecure
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating middleware" serviceName=microk8s routerName=to-microk8s@file entryPointName=websecure middlewareName=pipelining middlewareType=Pipelining
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating load-balancer" routerName=to-microk8s@file entryPointName=websecure serviceName=microk8s
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating server 0 https://192.168.100.13:10443/" entryPointName=websecure serviceName=microk8s serverName=0 routerName=to-microk8s@file
time="2020-03-02T16:04:59-06:00" level=debug msg="Added outgoing tracing middleware microk8s" routerName=to-microk8s@file middlewareType=TracingForwarder middlewareName=tracing entryPointName=websecure
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating middleware" middlewareName=pipelining middlewareType=Pipelining serviceName=lemmy entryPointName=websecure routerName=to-lemmy@file
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating load-balancer" routerName=to-lemmy@file serviceName=lemmy entryPointName=websecure
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating server 0 http://192.168.100.13:8536/" entryPointName=websecure routerName=to-lemmy@file serviceName=lemmy serverName=0
time="2020-03-02T16:04:59-06:00" level=debug msg="Added outgoing tracing middleware lemmy" entryPointName=websecure routerName=to-lemmy@file middlewareName=tracing middlewareType=TracingForwarder
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating middleware" entryPointName=websecure routerName=to-sonarr@file serviceName=sonarr middlewareType=Pipelining middlewareName=pipelining
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating load-balancer" entryPointName=websecure routerName=to-sonarr@file serviceName=sonarr
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating server 0 http://192.168.100.13:8989/" routerName=to-sonarr@file serviceName=sonarr entryPointName=websecure serverName=0
time="2020-03-02T16:04:59-06:00" level=debug msg="Added outgoing tracing middleware sonarr" middlewareType=TracingForwarder entryPointName=websecure routerName=to-sonarr@file middlewareName=tracing
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating middleware" routerName=to-status-mvgl@file serviceName=status-mvgl middlewareName=pipelining middlewareType=Pipelining entryPointName=websecure
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating load-balancer" entryPointName=websecure routerName=to-status-mvgl@file serviceName=status-mvgl
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating server 0 http://192.168.100.13:5001/" entryPointName=websecure routerName=to-status-mvgl@file serviceName=status-mvgl serverName=0
time="2020-03-02T16:04:59-06:00" level=debug msg="Added outgoing tracing middleware status-mvgl" middlewareType=TracingForwarder entryPointName=websecure routerName=to-status-mvgl@file middlewareName=tracing
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating middleware" serviceName=sonarqube entryPointName=websecure routerName=to-sonarqube@file middlewareName=pipelining middlewareType=Pipelining
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating load-balancer" serviceName=sonarqube entryPointName=websecure routerName=to-sonarqube@file
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating server 0 http://192.168.100.13:9002/" entryPointName=websecure routerName=to-sonarqube@file serviceName=sonarqube serverName=0
time="2020-03-02T16:04:59-06:00" level=debug msg="Added outgoing tracing middleware sonarqube" entryPointName=websecure routerName=to-sonarqube@file middlewareType=TracingForwarder middlewareName=tracing
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating middleware" entryPointName=websecure routerName=to-features-mvgl@file serviceName=features-mvgl middlewareName=pipelining middlewareType=Pipelining
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating load-balancer" entryPointName=websecure routerName=to-features-mvgl@file serviceName=features-mvgl
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating server 0 http://192.168.100.13:9999/" serverName=0 entryPointName=websecure routerName=to-features-mvgl@file serviceName=features-mvgl
time="2020-03-02T16:04:59-06:00" level=debug msg="Added outgoing tracing middleware features-mvgl" routerName=to-features-mvgl@file entryPointName=websecure middlewareName=tracing middlewareType=TracingForwarder
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating middleware" entryPointName=websecure routerName=to-unifi@file serviceName=unifi middlewareType=Pipelining middlewareName=pipelining
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating load-balancer" entryPointName=websecure routerName=to-unifi@file serviceName=unifi
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating server 0 https://192.168.100.13:8443/" entryPointName=websecure routerName=to-unifi@file serviceName=unifi serverName=0
time="2020-03-02T16:04:59-06:00" level=debug msg="Added outgoing tracing middleware unifi" middlewareType=TracingForwarder middlewareName=tracing entryPointName=websecure routerName=to-unifi@file
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating middleware" entryPointName=websecure serviceName=portainer middlewareName=pipelining middlewareType=Pipelining routerName=to-portainer@file
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating load-balancer" entryPointName=websecure serviceName=portainer routerName=to-portainer@file
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating server 0 http://192.168.100.13:9000/" serverName=0 routerName=to-portainer@file entryPointName=websecure serviceName=portainer
time="2020-03-02T16:04:59-06:00" level=debug msg="Added outgoing tracing middleware portainer" middlewareName=tracing middlewareType=TracingForwarder entryPointName=websecure routerName=to-portainer@file
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating middleware" middlewareName=pipelining middlewareType=Pipelining entryPointName=websecure routerName=to-organizr@file serviceName=organizr
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating load-balancer" entryPointName=websecure routerName=to-organizr@file serviceName=organizr
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating server 0 http://192.168.100.13:9983/" serviceName=organizr serverName=0 entryPointName=websecure routerName=to-organizr@file
time="2020-03-02T16:04:59-06:00" level=debug msg="Added outgoing tracing middleware organizr" entryPointName=websecure routerName=to-organizr@file middlewareType=TracingForwarder middlewareName=tracing
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating middleware" middlewareName=pipelining serviceName=traefik entryPointName=websecure routerName=to-traefik@file middlewareType=Pipelining
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating load-balancer" entryPointName=websecure routerName=to-traefik@file serviceName=traefik
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating server 0 http://192.168.100.13:8080/" serverName=0 entryPointName=websecure routerName=to-traefik@file serviceName=traefik
time="2020-03-02T16:04:59-06:00" level=debug msg="Added outgoing tracing middleware traefik" entryPointName=websecure routerName=to-traefik@file middlewareType=TracingForwarder middlewareName=tracing
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating middleware" entryPointName=websecure routerName=to-mastodon@file middlewareName=pipelining middlewareType=Pipelining serviceName=mastodon
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating load-balancer" serviceName=mastodon entryPointName=websecure routerName=to-mastodon@file
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating server 0 http://192.168.100.13:3001/" entryPointName=websecure routerName=to-mastodon@file serviceName=mastodon serverName=0
time="2020-03-02T16:04:59-06:00" level=debug msg="Added outgoing tracing middleware mastodon" entryPointName=websecure routerName=to-mastodon@file middlewareName=tracing middlewareType=TracingForwarder
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating middleware" middlewareName=pipelining middlewareType=Pipelining serviceName=status-nzxt entryPointName=websecure routerName=to-status-nzxt@file
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating load-balancer" serviceName=status-nzxt entryPointName=websecure routerName=to-status-nzxt@file
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating server 0 http://192.168.100.13:5002/" entryPointName=websecure routerName=to-status-nzxt@file serviceName=status-nzxt serverName=0
time="2020-03-02T16:04:59-06:00" level=debug msg="Added outgoing tracing middleware status-nzxt" entryPointName=websecure routerName=to-status-nzxt@file middlewareName=tracing middlewareType=TracingForwarder
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating middleware" entryPointName=websecure routerName=to-drone@file serviceName=drone middlewareName=pipelining middlewareType=Pipelining
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating load-balancer" routerName=to-drone@file serviceName=drone entryPointName=websecure
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating server 0 http://192.168.100.13:3080/" entryPointName=websecure routerName=to-drone@file serviceName=drone serverName=0
time="2020-03-02T16:04:59-06:00" level=debug msg="Added outgoing tracing middleware drone" middlewareName=tracing middlewareType=TracingForwarder routerName=to-drone@file entryPointName=websecure
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating middleware" routerName=to-tautulli@file serviceName=tautulli middlewareName=pipelining middlewareType=Pipelining entryPointName=websecure
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating load-balancer" entryPointName=websecure routerName=to-tautulli@file serviceName=tautulli
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating server 0 http://192.168.100.20:8181/" entryPointName=websecure routerName=to-tautulli@file serviceName=tautulli serverName=0
time="2020-03-02T16:04:59-06:00" level=debug msg="Added outgoing tracing middleware tautulli" routerName=to-tautulli@file entryPointName=websecure middlewareName=tracing middlewareType=TracingForwarder
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating middleware" entryPointName=websecure routerName=to-drone-runners@file middlewareType=Pipelining middlewareName=pipelining serviceName=drone-runners
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating load-balancer" entryPointName=websecure routerName=to-drone-runners@file serviceName=drone-runners
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating server 0 https://192.168.100.13:3555/" serviceName=drone-runners entryPointName=websecure serverName=0 routerName=to-drone-runners@file
time="2020-03-02T16:04:59-06:00" level=debug msg="Added outgoing tracing middleware drone-runners" routerName=to-drone-runners@file middlewareName=tracing middlewareType=TracingForwarder entryPointName=websecure
time="2020-03-02T16:04:59-06:00" level=debug msg="Creating middleware" entryPointName=websecure middlewareName=traefik-internal-recovery middlewareType=Recovery

you removed some important lines, could you edit your post and all the logs.

Had to do a pastebin:

https://paste.linuxbox.ninja/paste/59

Your configuration is huge, I think Docker can be your friend to reduce the size and the complexity of the maintenance, but it's not the topic.


For the priorities.

the default priorities are computed from the rules:

  • to-lemmy-pictshare: Host(`lemmy.linuxbox.ninja`) && PathPrefix(`/pictshare`) -> 56
  • to-lemmy: Host(`lemmy.linuxbox.ninja`) -> 28

so you don't need to change the priorities manually.


I don't see any issue in your configuration but I cannot reproduce your issue.

Yeah, I didn't think the priorities were the issue as per the docs it says the longest one is the higher priority and obviously the ones with the PathPrefix is longer.

I just can't figure out why it hits the router for Host(`lemmy.linuxbox.ninja`) instead of the other one.

I did find this GitHub Issue in which the guy seemed to resolve it but was using the older version of Traefik. I tried to emulate it in the newer 2.x version I am running (obviously didn't work).

On the note of Docker, I am actually using Docker, maybe I shouldn't be using File provider? The Docker configuration looked far more confusing.

The docker routing configuration is simple https://docs.traefik.io/routing/providers/docker/

Your conversion is right.

I tried to setup the lemmy stack, it's working for me:

version: '3.7'

services:
  lemmy_db:
    image: postgres:12-alpine
    restart: always
    environment:
      - POSTGRES_USER=lemmy
      - POSTGRES_PASSWORD=password
      - POSTGRES_DB=lemmy
    volumes:
      - lemmy_db:/var/lib/postgresql/data

  lemmy:
    image: dessalines/lemmy:v0.6.29
    restart: always
    volumes:
      - ./lemmy-conf/lemmy.hjson:/config/config.hjson:ro
    depends_on: 
      - lemmy_db
    labels:
      traefik.enable: true

      traefik.http.routers.lemmy.rule: Host(`lemmy.localhost`)
      traefik.http.routers.lemmy.entrypoints: websecure
      traefik.http.routers.lemmy.tls: true # auto generated self-signed certificates (only for the demo)
      # traefik.http.routers.lemmy.tls.certresolver: leresolver

      traefik.http.services.lemmy_svc.loadBalancer.server.port: 8536

  lemmy_pictshare:
    image: shtripok/pictshare:latest
    restart: always
    volumes:
      - lemmy_pictshare:/usr/share/nginx/html/data
    labels:
      traefik.enable: true

      traefik.http.routers.lemmy_pictshare.rule: Host(`lemmy.localhost`) && PathPrefix(`/pictshare`)
      traefik.http.routers.lemmy_pictshare.entrypoints: websecure
      traefik.http.routers.lemmy_pictshare.tls: true # auto generated self-signed certificates (only for the demo)
      # traefik.http.routers.lemmy_pictshare.tls.certresolver: leresolver
      traefik.http.routers.lemmy_pictshare.middlewares: pictshare_strip

      traefik.http.services.lemmy_pictshare_svc.loadBalancer.server.port: 80

      traefik.http.middlewares.pictshare_strip.stripprefix.prefixes: /pictshare

  lemmy_iframely:
    image: dogbin/iframely:latest
    restart: always
    volumes:
      - ./lemmy-conf/iframely.config.local.js:/iframely/config.local.js:ro
    labels:
      traefik.enable: true

      traefik.http.routers.lemmy_iframely.rule: Host(`lemmy.localhost`) && PathPrefix(`/iframely`)
      traefik.http.routers.lemmy_iframely.entrypoints: websecure
      traefik.http.routers.lemmy_iframely.tls: true # auto generated self-signed certificates (only for the demo)
      # traefik.http.routers.lemmy_iframely.tls.certresolver: leresolver
      traefik.http.routers.lemmy_iframely.middlewares: iframely_strip

      traefik.http.services.lemmy_iframely_svc.loadBalancer.server.port: 8061

      traefik.http.middlewares.iframely_strip.stripprefix.prefixes: /iframely

  traefik:
    image: traefik:v2.1.6
    command:
      - --log.level=INFO
      - --api
      - --providers.docker=true
      - --providers.docker.exposedbydefault=false
      - --entrypoints.web.address=:80
      - --entrypoints.websecure.address=:443
      # - --certificatesresolvers.leresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory
      # - --certificatesresolvers.leresolver.acme.email=your@email.com
      # - --certificatesresolvers.leresolver.acme.storage=/letsencript/acme.json
      # - --certificatesresolvers.leresolver.acme.tlsChallenge=true
    ports:
      - 80:80
      - 443:443
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      # - ./letsencript/:/letsencript
    labels:
      traefik.enable: true

      traefik.http.routers.traefik.rule: Host(`traefik.localhost`)
      traefik.http.routers.traefik.entrypoints: websecure
      traefik.http.routers.traefik.service: api@internal
      traefik.http.routers.traefik.tls: true # auto generated self-signed certificates (only for the demo)
      # traefik.http.routers.traefik.tls.certresolver: leresolver

      # global redirect to https
      traefik.http.routers.http-catchall.rule: hostregexp(`{host:.+}`)
      traefik.http.routers.http-catchall.entrypoints: web
      traefik.http.routers.http-catchall.middlewares: redirect-to-https
      
      # middleware redirect
      traefik.http.middlewares.redirect-to-https.redirectscheme.scheme: https

Well, I did make a bit further using Docker labels, however I am having a similar issue with HTTP/2 as in here:

It's trying to use HTTP/2 when the backend doesn't support it. Looking over the forums I can't seem to find anything...any ideas?

$ curl -I https://drone.linuxbox.ninja             
curl: (92) HTTP/2 stream 0 was not closed cleanly: INTERNAL_ERROR (err 2)
$ curl https://drone.linuxbox.ninja  --http1.1 -Ivv
*   Trying 76.241.26.223...
* TCP_NODELAY set
* Connected to drone.linuxbox.ninja (76.241.26.223) port 443 (#0)
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/cert.pem
  CApath: none
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
* ALPN, server accepted to use http/1.1
* Server certificate:
*  subject: CN=drone.linuxbox.ninja
*  start date: Jan 15 01:49:25 2020 GMT
*  expire date: Apr 14 01:49:25 2020 GMT
*  subjectAltName: host "drone.linuxbox.ninja" matched cert's "drone.linuxbox.ninja"
*  issuer: C=US; O=Let's Encrypt; CN=Let's Encrypt Authority X3
*  SSL certificate verify ok.
> HEAD / HTTP/1.1
> Host: drone.linuxbox.ninja
> User-Agent: curl/7.64.1
> Accept: */*
>