Skip to content

File Configuration Reference

http:
  routers:
    Router0:
      entryPoints:
      - foobar
      - foobar
      middlewares:
      - foobar
      - foobar
      service: foobar
      rule: foobar
      priority: 42
      tls:
        options: foobar
        certResolver: foobar
        domains:
        - main: foobar
          sans:
          - foobar
          - foobar
        - main: foobar
          sans:
          - foobar
          - foobar
    Router1:
      entryPoints:
      - foobar
      - foobar
      middlewares:
      - foobar
      - foobar
      service: foobar
      rule: foobar
      priority: 42
      tls:
        options: foobar
        certResolver: foobar
        domains:
        - main: foobar
          sans:
          - foobar
          - foobar
        - main: foobar
          sans:
          - foobar
          - foobar
  services:
    Service01:
      failover:
        service: foobar
        fallback: foobar
        healthCheck: {}
    Service02:
      loadBalancer:
        sticky:
          cookie:
            name: foobar
            secure: true
            httpOnly: true
            sameSite: foobar
        servers:
        - url: foobar
        - url: foobar
        healthCheck:
          scheme: foobar
          path: foobar
          method: foobar
          port: 42
          interval: foobar
          timeout: foobar
          hostname: foobar
          followRedirects: true
          headers:
            name0: foobar
            name1: foobar
        passHostHeader: true
        responseForwarding:
          flushInterval: foobar
        serversTransport: foobar
        apiportal:
          path: foobar
          groups:
            APIPortalGroup0:
              path: foobar
            APIPortalGroup1:
              path: foobar
    Service03:
      mirroring:
        service: foobar
        maxBodySize: 42
        mirrors:
        - name: foobar
          percent: 42
        - name: foobar
          percent: 42
        healthCheck: {}
    Service04:
      weighted:
        services:
        - name: foobar
          weight: 42
        - name: foobar
          weight: 42
        sticky:
          cookie:
            name: foobar
            secure: true
            httpOnly: true
            sameSite: foobar
        healthCheck: {}
  middlewares:
    Middleware00:
      addPrefix:
        prefix: foobar
    Middleware01:
      basicAuth:
        users:
        - foobar
        - foobar
        usersFile: foobar
        realm: foobar
        removeHeader: true
        headerField: foobar
    Middleware02:
      buffering:
        maxRequestBodyBytes: 42
        memRequestBodyBytes: 42
        maxResponseBodyBytes: 42
        memResponseBodyBytes: 42
        retryExpression: foobar
    Middleware03:
      chain:
        middlewares:
        - foobar
        - foobar
    Middleware04:
      circuitBreaker:
        expression: foobar
        checkPeriod: 42s
        fallbackDuration: 42s
        recoveryDuration: 42s
    Middleware05:
      compress:
        excludedContentTypes:
        - foobar
        - foobar
        minResponseBodyBytes: 42
    Middleware06:
      contentType:
        autoDetect: true
    Middleware07:
      digestAuth:
        users:
        - foobar
        - foobar
        usersFile: foobar
        removeHeader: true
        realm: foobar
        headerField: foobar
    Middleware08:
      errors:
        status:
        - foobar
        - foobar
        service: foobar
        query: foobar
        ignoreBackendErrors: true
    Middleware09:
      forwardAuth:
        address: foobar
        tls:
          ca: foobar
          caOptional: true
          cert: foobar
          key: foobar
          insecureSkipVerify: true
        trustForwardHeader: true
        authResponseHeaders:
        - foobar
        - foobar
        authResponseHeadersRegex: foobar
        authRequestHeaders:
        - foobar
        - foobar
    Middleware10:
      headers:
        customRequestHeaders:
          name0: foobar
          name1: foobar
        customResponseHeaders:
          name0: foobar
          name1: foobar
        accessControlAllowCredentials: true
        accessControlAllowHeaders:
        - foobar
        - foobar
        accessControlAllowMethods:
        - foobar
        - foobar
        accessControlAllowOriginList:
        - foobar
        - foobar
        accessControlAllowOriginListRegex:
        - foobar
        - foobar
        accessControlExposeHeaders:
        - foobar
        - foobar
        accessControlMaxAge: 42
        addVaryHeader: true
        allowedHosts:
        - foobar
        - foobar
        hostsProxyHeaders:
        - foobar
        - foobar
        sslRedirect: true
        sslTemporaryRedirect: true
        sslHost: foobar
        sslProxyHeaders:
          name0: foobar
          name1: foobar
        sslForceHost: true
        stsSeconds: 42
        stsIncludeSubdomains: true
        stsPreload: true
        forceSTSHeader: true
        frameDeny: true
        customFrameOptionsValue: foobar
        contentTypeNosniff: true
        browserXssFilter: true
        customBrowserXSSValue: foobar
        contentSecurityPolicy: foobar
        publicKey: foobar
        referrerPolicy: foobar
        featurePolicy: foobar
        permissionsPolicy: foobar
        isDevelopment: true
    Middleware11:
      ipAllowList:
        sourceRange:
        - foobar
        - foobar
        ipStrategy:
          depth: 42
          excludedIPs:
          - foobar
          - foobar
    Middleware12:
      ipWhiteList:
        sourceRange:
        - foobar
        - foobar
        ipStrategy:
          depth: 42
          excludedIPs:
          - foobar
          - foobar
    Middleware13:
      inFlightReq:
        amount: 42
        sourceCriterion:
          ipStrategy:
            depth: 42
            excludedIPs:
            - foobar
            - foobar
          requestHeaderName: foobar
          requestHost: true
    Middleware14:
      passTLSClientCert:
        pem: true
        info:
          notAfter: true
          notBefore: true
          sans: true
          serialNumber: true
          subject:
            country: true
            province: true
            locality: true
            organization: true
            organizationalUnit: true
            commonName: true
            serialNumber: true
            domainComponent: true
          issuer:
            country: true
            province: true
            locality: true
            organization: true
            commonName: true
            serialNumber: true
            domainComponent: true
    Middleware15:
      plugin:
        PluginConf0:
          "0": null
          "1": null
        PluginConf1:
          "0": null
          "1": null
    Middleware16:
      rateLimit:
        average: 42
        period: 42s
        burst: 42
        sourceCriterion:
          ipStrategy:
            depth: 42
            excludedIPs:
            - foobar
            - foobar
          requestHeaderName: foobar
          requestHost: true
    Middleware17:
      redirectRegex:
        regex: foobar
        replacement: foobar
        permanent: true
    Middleware18:
      redirectScheme:
        scheme: foobar
        port: foobar
        permanent: true
    Middleware19:
      replacePath:
        path: foobar
    Middleware20:
      replacePathRegex:
        regex: foobar
        replacement: foobar
    Middleware21:
      retry:
        attempts: 42
        initialInterval: 42s
    Middleware22:
      stripPrefix:
        prefixes:
        - foobar
        - foobar
        forceSlash: true
    Middleware23:
      stripPrefixRegex:
        regex:
        - foobar
        - foobar
    Plugin0:
      plugin:
        hmacAuth:
          enforcedHeaders:
          - foobar
          - foobar
          source: foobar
          validateDigest: true
    Plugin1:
      plugin:
        ldapAuth:
          attribute: foobar
          baseDN: foobar
          forwardAuthorization: true
          forwardUsername: true
          forwardUsernameHeader: foobar
          searchFilter: foobar
          source: foobar
          wwwAuthenticateHeader: true
          wwwAuthenticateHeaderRealm: foobar
    Plugin2:
      plugin:
        jwtAuth:
          claims: foobar
          forwardAuthorization: true
          forwardHeaders:
            name0: foobar
            name1: foobar
          source: foobar
          tokenKey: foobar
          tokenQueryKey: foobar
          username: foobar
    Plugin3:
      plugin:
        oAuthIntrospection:
          claims: foobar
          forwardAuthorization: true
          forwardHeaders:
            name0: foobar
            name1: foobar
          source: foobar
          tokenQueryKey: foobar
          tokenTypeHint: foobar
          username: foobar
    Plugin4:
      plugin:
        oidcAuth:
          authParams:
            name0: foobar
            name1: foobar
          backchannelLogoutSessionsRequired: true
          backchannelLogoutUrl: foobar
          claims: foobar
          csrf:
            headerName: foobar
            secure: true
          disableLogin: true
          forwardHeaders:
            name0: foobar
            name1: foobar
          loginUrl: foobar
          logoutUrl: foobar
          postLoginRedirectUrl: foobar
          postLogoutRedirectUrl: foobar
          redirectUrl: foobar
          scopes:
          - foobar
          - foobar
          session:
            domain: foobar
            expiry: 42
            httpOnly: true
            name: foobar
            path: foobar
            refresh: true
            sameSite: foobar
            secret: foobar
            secure: true
            sliding: true
            store: foobar
          source: foobar
          stateCookie:
            domain: foobar
            httpOnly: true
            maxAge: 42
            name: foobar
            path: foobar
            sameSite: foobar
            secret: foobar
            secure: true
          username: foobar
    Plugin5:
      plugin:
        inFlightReq:
          amount: 42
          sourceCriterion:
            ipStrategy:
              depth: 42
              excludedIPs:
              - foobar
              - foobar
            requestHeaderName: foobar
            requestHost: true
    Plugin6:
      plugin:
        rateLimit:
          average: 42
          burst: 42
          denyOnError: true
          period: 42s
          responseHeaders: true
          sourceCriterion:
            ipStrategy:
              depth: 42
              excludedIPs:
              - foobar
              - foobar
            requestHeaderName: foobar
            requestHost: true
          timeout: 42s
    Plugin7:
      plugin:
        httpCache:
          disableCacheStatusHeader: true
          excludedResponseCodes:
          - foobar
          - foobar
          maxStale: 42
          maxTtl: 42
          memory:
            limit: foobar
    Plugin8:
      plugin:
        apikey:
          kind: foobar
          secretNonBase64Encoded: true
          secretParam: foobar
          secretValue: foobar
          secretValues:
          - foobar
          - foobar
    Plugin9:
      plugin:
        opa:
          allow: foobar
          bundlePath: foobar
          forwardHeaders:
            name0: foobar
            name1: foobar
          policy: foobar
  serversTransports:
    ServersTransport0:
      serverName: foobar
      insecureSkipVerify: true
      rootCAs:
      - foobar
      - foobar
      certificates:
      - certFile: foobar
        keyFile: foobar
      - certFile: foobar
        keyFile: foobar
      maxIdleConnsPerHost: 42
      forwardingTimeouts:
        dialTimeout: 42s
        responseHeaderTimeout: 42s
        idleConnTimeout: 42s
        readIdleTimeout: 42s
        pingTimeout: 42s
      disableHTTP2: true
      peerCertURI: foobar
    ServersTransport1:
      serverName: foobar
      insecureSkipVerify: true
      rootCAs:
      - foobar
      - foobar
      certificates:
      - certFile: foobar
        keyFile: foobar
      - certFile: foobar
        keyFile: foobar
      maxIdleConnsPerHost: 42
      forwardingTimeouts:
        dialTimeout: 42s
        responseHeaderTimeout: 42s
        idleConnTimeout: 42s
        readIdleTimeout: 42s
        pingTimeout: 42s
      disableHTTP2: true
      peerCertURI: foobar
tcp:
  routers:
    TCPRouter0:
      entryPoints:
      - foobar
      - foobar
      middlewares:
      - foobar
      - foobar
      service: foobar
      rule: foobar
      priority: 42
      tls:
        passthrough: true
        options: foobar
        certResolver: foobar
        domains:
        - main: foobar
          sans:
          - foobar
          - foobar
        - main: foobar
          sans:
          - foobar
          - foobar
    TCPRouter1:
      entryPoints:
      - foobar
      - foobar
      middlewares:
      - foobar
      - foobar
      service: foobar
      rule: foobar
      priority: 42
      tls:
        passthrough: true
        options: foobar
        certResolver: foobar
        domains:
        - main: foobar
          sans:
          - foobar
          - foobar
        - main: foobar
          sans:
          - foobar
          - foobar
  services:
    TCPService01:
      loadBalancer:
        terminationDelay: 42
        proxyProtocol:
          version: 42
        servers:
        - address: foobar
        - address: foobar
    TCPService02:
      weighted:
        services:
        - name: foobar
          weight: 42
        - name: foobar
          weight: 42
  middlewares:
    TCPMiddleware0:
      inFlightConn:
        amount: 42
      ipWhiteList:
        sourceRange:
        - foobar
        - foobar
      ipAllowList:
        sourceRange:
        - foobar
        - foobar
    TCPMiddleware1:
      inFlightConn:
        amount: 42
      ipWhiteList:
        sourceRange:
        - foobar
        - foobar
      ipAllowList:
        sourceRange:
        - foobar
        - foobar
udp:
  routers:
    UDPRouter0:
      entryPoints:
      - foobar
      - foobar
      service: foobar
    UDPRouter1:
      entryPoints:
      - foobar
      - foobar
      service: foobar
  services:
    UDPService0:
      loadBalancer:
        servers:
        - address: foobar
        - address: foobar
      weighted:
        services:
        - name: foobar
          weight: 42
        - name: foobar
          weight: 42
    UDPService1:
      loadBalancer:
        servers:
        - address: foobar
        - address: foobar
      weighted:
        services:
        - name: foobar
          weight: 42
        - name: foobar
          weight: 42
tls:
  certificates:
  - certFile: foobar
    keyFile: foobar
    stores:
    - foobar
    - foobar
  - certFile: foobar
    keyFile: foobar
    stores:
    - foobar
    - foobar
  options:
    Options0:
      minVersion: foobar
      maxVersion: foobar
      cipherSuites:
      - foobar
      - foobar
      curvePreferences:
      - foobar
      - foobar
      clientAuth:
        caFiles:
        - foobar
        - foobar
        clientAuthType: foobar
      sniStrict: true
      preferServerCipherSuites: true
      alpnProtocols:
      - foobar
      - foobar
    Options1:
      minVersion: foobar
      maxVersion: foobar
      cipherSuites:
      - foobar
      - foobar
      curvePreferences:
      - foobar
      - foobar
      clientAuth:
        caFiles:
        - foobar
        - foobar
        clientAuthType: foobar
      sniStrict: true
      preferServerCipherSuites: true
      alpnProtocols:
      - foobar
      - foobar
  stores:
    Store0:
      defaultCertificate:
        certFile: foobar
        keyFile: foobar
      defaultGeneratedCert:
        resolver: foobar
        domain:
          main: foobar
          sans:
          - foobar
          - foobar
    Store1:
      defaultCertificate:
        certFile: foobar
        keyFile: foobar
      defaultGeneratedCert:
        resolver: foobar
        domain:
          main: foobar
          sans:
          - foobar
          - foobar
[http]
  [http.routers]
    [http.routers.Router0]
      entryPoints = ["foobar", "foobar"]
      middlewares = ["foobar", "foobar"]
      service = "foobar"
      rule = "foobar"
      priority = 42
      [http.routers.Router0.tls]
        options = "foobar"
        certResolver = "foobar"

        [[http.routers.Router0.tls.domains]]
          main = "foobar"
          sans = ["foobar", "foobar"]

        [[http.routers.Router0.tls.domains]]
          main = "foobar"
          sans = ["foobar", "foobar"]
    [http.routers.Router1]
      entryPoints = ["foobar", "foobar"]
      middlewares = ["foobar", "foobar"]
      service = "foobar"
      rule = "foobar"
      priority = 42
      [http.routers.Router1.tls]
        options = "foobar"
        certResolver = "foobar"

        [[http.routers.Router1.tls.domains]]
          main = "foobar"
          sans = ["foobar", "foobar"]

        [[http.routers.Router1.tls.domains]]
          main = "foobar"
          sans = ["foobar", "foobar"]
  [http.services]
    [http.services.Service01]
      [http.services.Service01.failover]
        service = "foobar"
        fallback = "foobar"
        [http.services.Service01.failover.healthCheck]
    [http.services.Service02]
      [http.services.Service02.loadBalancer]
        passHostHeader = true
        serversTransport = "foobar"
        [http.services.Service02.loadBalancer.sticky]
          [http.services.Service02.loadBalancer.sticky.cookie]
            name = "foobar"
            secure = true
            httpOnly = true
            sameSite = "foobar"

        [[http.services.Service02.loadBalancer.servers]]
          url = "foobar"

        [[http.services.Service02.loadBalancer.servers]]
          url = "foobar"
        [http.services.Service02.loadBalancer.healthCheck]
          scheme = "foobar"
          path = "foobar"
          method = "foobar"
          port = 42
          interval = "foobar"
          timeout = "foobar"
          hostname = "foobar"
          followRedirects = true
          [http.services.Service02.loadBalancer.healthCheck.headers]
            name0 = "foobar"
            name1 = "foobar"
        [http.services.Service02.loadBalancer.responseForwarding]
          flushInterval = "foobar"
        [http.services.Service02.loadBalancer.apiportal]
          path = "foobar"
          [http.services.Service02.loadBalancer.apiportal.groups]
            [http.services.Service02.loadBalancer.apiportal.groups.APIPortalGroup0]
              path = "foobar"
            [http.services.Service02.loadBalancer.apiportal.groups.APIPortalGroup1]
              path = "foobar"
    [http.services.Service03]
      [http.services.Service03.mirroring]
        service = "foobar"
        maxBodySize = 42

        [[http.services.Service03.mirroring.mirrors]]
          name = "foobar"
          percent = 42

        [[http.services.Service03.mirroring.mirrors]]
          name = "foobar"
          percent = 42
        [http.services.Service03.mirroring.healthCheck]
    [http.services.Service04]
      [http.services.Service04.weighted]

        [[http.services.Service04.weighted.services]]
          name = "foobar"
          weight = 42

        [[http.services.Service04.weighted.services]]
          name = "foobar"
          weight = 42
        [http.services.Service04.weighted.sticky]
          [http.services.Service04.weighted.sticky.cookie]
            name = "foobar"
            secure = true
            httpOnly = true
            sameSite = "foobar"
        [http.services.Service04.weighted.healthCheck]
  [http.middlewares]
    [http.middlewares.Middleware00]
      [http.middlewares.Middleware00.addPrefix]
        prefix = "foobar"
    [http.middlewares.Middleware01]
      [http.middlewares.Middleware01.basicAuth]
        users = ["foobar", "foobar"]
        usersFile = "foobar"
        realm = "foobar"
        removeHeader = true
        headerField = "foobar"
    [http.middlewares.Middleware02]
      [http.middlewares.Middleware02.buffering]
        maxRequestBodyBytes = 42
        memRequestBodyBytes = 42
        maxResponseBodyBytes = 42
        memResponseBodyBytes = 42
        retryExpression = "foobar"
    [http.middlewares.Middleware03]
      [http.middlewares.Middleware03.chain]
        middlewares = ["foobar", "foobar"]
    [http.middlewares.Middleware04]
      [http.middlewares.Middleware04.circuitBreaker]
        expression = "foobar"
        checkPeriod = "42s"
        fallbackDuration = "42s"
        recoveryDuration = "42s"
    [http.middlewares.Middleware05]
      [http.middlewares.Middleware05.compress]
        excludedContentTypes = ["foobar", "foobar"]
        minResponseBodyBytes = 42
    [http.middlewares.Middleware06]
      [http.middlewares.Middleware06.contentType]
        autoDetect = true
    [http.middlewares.Middleware07]
      [http.middlewares.Middleware07.digestAuth]
        users = ["foobar", "foobar"]
        usersFile = "foobar"
        removeHeader = true
        realm = "foobar"
        headerField = "foobar"
    [http.middlewares.Middleware08]
      [http.middlewares.Middleware08.errors]
        status = ["foobar", "foobar"]
        service = "foobar"
        query = "foobar"
        ignoreBackendErrors = true
    [http.middlewares.Middleware09]
      [http.middlewares.Middleware09.forwardAuth]
        address = "foobar"
        trustForwardHeader = true
        authResponseHeaders = ["foobar", "foobar"]
        authResponseHeadersRegex = "foobar"
        authRequestHeaders = ["foobar", "foobar"]
        [http.middlewares.Middleware09.forwardAuth.tls]
          ca = "foobar"
          caOptional = true
          cert = "foobar"
          key = "foobar"
          insecureSkipVerify = true
    [http.middlewares.Middleware10]
      [http.middlewares.Middleware10.headers]
        accessControlAllowCredentials = true
        accessControlAllowHeaders = ["foobar", "foobar"]
        accessControlAllowMethods = ["foobar", "foobar"]
        accessControlAllowOriginList = ["foobar", "foobar"]
        accessControlAllowOriginListRegex = ["foobar", "foobar"]
        accessControlExposeHeaders = ["foobar", "foobar"]
        accessControlMaxAge = 42
        addVaryHeader = true
        allowedHosts = ["foobar", "foobar"]
        hostsProxyHeaders = ["foobar", "foobar"]
        sslRedirect = true
        sslTemporaryRedirect = true
        sslHost = "foobar"
        sslForceHost = true
        stsSeconds = 42
        stsIncludeSubdomains = true
        stsPreload = true
        forceSTSHeader = true
        frameDeny = true
        customFrameOptionsValue = "foobar"
        contentTypeNosniff = true
        browserXssFilter = true
        customBrowserXSSValue = "foobar"
        contentSecurityPolicy = "foobar"
        publicKey = "foobar"
        referrerPolicy = "foobar"
        featurePolicy = "foobar"
        permissionsPolicy = "foobar"
        isDevelopment = true
        [http.middlewares.Middleware10.headers.customRequestHeaders]
          name0 = "foobar"
          name1 = "foobar"
        [http.middlewares.Middleware10.headers.customResponseHeaders]
          name0 = "foobar"
          name1 = "foobar"
        [http.middlewares.Middleware10.headers.sslProxyHeaders]
          name0 = "foobar"
          name1 = "foobar"
    [http.middlewares.Middleware11]
      [http.middlewares.Middleware11.ipAllowList]
        sourceRange = ["foobar", "foobar"]
        [http.middlewares.Middleware11.ipAllowList.ipStrategy]
          depth = 42
          excludedIPs = ["foobar", "foobar"]
    [http.middlewares.Middleware12]
      [http.middlewares.Middleware12.ipWhiteList]
        sourceRange = ["foobar", "foobar"]
        [http.middlewares.Middleware12.ipWhiteList.ipStrategy]
          depth = 42
          excludedIPs = ["foobar", "foobar"]
    [http.middlewares.Middleware13]
      [http.middlewares.Middleware13.inFlightReq]
        amount = 42
        [http.middlewares.Middleware13.inFlightReq.sourceCriterion]
          requestHeaderName = "foobar"
          requestHost = true
          [http.middlewares.Middleware13.inFlightReq.sourceCriterion.ipStrategy]
            depth = 42
            excludedIPs = ["foobar", "foobar"]
    [http.middlewares.Middleware14]
      [http.middlewares.Middleware14.passTLSClientCert]
        pem = true
        [http.middlewares.Middleware14.passTLSClientCert.info]
          notAfter = true
          notBefore = true
          sans = true
          serialNumber = true
          [http.middlewares.Middleware14.passTLSClientCert.info.subject]
            country = true
            province = true
            locality = true
            organization = true
            organizationalUnit = true
            commonName = true
            serialNumber = true
            domainComponent = true
          [http.middlewares.Middleware14.passTLSClientCert.info.issuer]
            country = true
            province = true
            locality = true
            organization = true
            commonName = true
            serialNumber = true
            domainComponent = true
    [http.middlewares.Middleware15]
      [http.middlewares.Middleware15.plugin]
        [http.middlewares.Middleware15.plugin.PluginConf0]
        [http.middlewares.Middleware15.plugin.PluginConf1]
    [http.middlewares.Middleware16]
      [http.middlewares.Middleware16.rateLimit]
        average = 42
        period = "42s"
        burst = 42
        [http.middlewares.Middleware16.rateLimit.sourceCriterion]
          requestHeaderName = "foobar"
          requestHost = true
          [http.middlewares.Middleware16.rateLimit.sourceCriterion.ipStrategy]
            depth = 42
            excludedIPs = ["foobar", "foobar"]
    [http.middlewares.Middleware17]
      [http.middlewares.Middleware17.redirectRegex]
        regex = "foobar"
        replacement = "foobar"
        permanent = true
    [http.middlewares.Middleware18]
      [http.middlewares.Middleware18.redirectScheme]
        scheme = "foobar"
        port = "foobar"
        permanent = true
    [http.middlewares.Middleware19]
      [http.middlewares.Middleware19.replacePath]
        path = "foobar"
    [http.middlewares.Middleware20]
      [http.middlewares.Middleware20.replacePathRegex]
        regex = "foobar"
        replacement = "foobar"
    [http.middlewares.Middleware21]
      [http.middlewares.Middleware21.retry]
        attempts = 42
        initialInterval = "42s"
    [http.middlewares.Middleware22]
      [http.middlewares.Middleware22.stripPrefix]
        prefixes = ["foobar", "foobar"]
        forceSlash = true
    [http.middlewares.Middleware23]
      [http.middlewares.Middleware23.stripPrefixRegex]
        regex = ["foobar", "foobar"]
    [http.middlewares.Plugin0]
      [http.middlewares.Plugin0.plugin]
        [http.middlewares.Plugin0.plugin.hmacAuth]
          enforcedHeaders = ["foobar", "foobar"]
          source = "foobar"
          validateDigest = true
    [http.middlewares.Plugin1]
      [http.middlewares.Plugin1.plugin]
        [http.middlewares.Plugin1.plugin.ldapAuth]
          attribute = "foobar"
          baseDN = "foobar"
          forwardAuthorization = true
          forwardUsername = true
          forwardUsernameHeader = "foobar"
          searchFilter = "foobar"
          source = "foobar"
          wwwAuthenticateHeader = true
          wwwAuthenticateHeaderRealm = "foobar"
    [http.middlewares.Plugin2]
      [http.middlewares.Plugin2.plugin]
        [http.middlewares.Plugin2.plugin.jwtAuth]
          claims = "foobar"
          forwardAuthorization = true
          source = "foobar"
          tokenKey = "foobar"
          tokenQueryKey = "foobar"
          username = "foobar"
          [http.middlewares.Plugin2.plugin.jwtAuth.forwardHeaders]
            name0 = "foobar"
            name1 = "foobar"
    [http.middlewares.Plugin3]
      [http.middlewares.Plugin3.plugin]
        [http.middlewares.Plugin3.plugin.oAuthIntrospection]
          claims = "foobar"
          forwardAuthorization = true
          source = "foobar"
          tokenQueryKey = "foobar"
          tokenTypeHint = "foobar"
          username = "foobar"
          [http.middlewares.Plugin3.plugin.oAuthIntrospection.forwardHeaders]
            name0 = "foobar"
            name1 = "foobar"
    [http.middlewares.Plugin4]
      [http.middlewares.Plugin4.plugin]
        [http.middlewares.Plugin4.plugin.oidcAuth]
          backchannelLogoutSessionsRequired = true
          backchannelLogoutUrl = "foobar"
          claims = "foobar"
          disableLogin = true
          loginUrl = "foobar"
          logoutUrl = "foobar"
          postLoginRedirectUrl = "foobar"
          postLogoutRedirectUrl = "foobar"
          redirectUrl = "foobar"
          scopes = ["foobar", "foobar"]
          source = "foobar"
          username = "foobar"
          [http.middlewares.Plugin4.plugin.oidcAuth.authParams]
            name0 = "foobar"
            name1 = "foobar"
          [http.middlewares.Plugin4.plugin.oidcAuth.csrf]
            headerName = "foobar"
            secure = true
          [http.middlewares.Plugin4.plugin.oidcAuth.forwardHeaders]
            name0 = "foobar"
            name1 = "foobar"
          [http.middlewares.Plugin4.plugin.oidcAuth.session]
            domain = "foobar"
            expiry = 42
            httpOnly = true
            name = "foobar"
            path = "foobar"
            refresh = true
            sameSite = "foobar"
            secret = "foobar"
            secure = true
            sliding = true
            store = "foobar"
          [http.middlewares.Plugin4.plugin.oidcAuth.stateCookie]
            domain = "foobar"
            httpOnly = true
            maxAge = 42
            name = "foobar"
            path = "foobar"
            sameSite = "foobar"
            secret = "foobar"
            secure = true
    [http.middlewares.Plugin5]
      [http.middlewares.Plugin5.plugin]
        [http.middlewares.Plugin5.plugin.inFlightReq]
          amount = 42
          [http.middlewares.Plugin5.plugin.inFlightReq.sourceCriterion]
            requestHeaderName = "foobar"
            requestHost = true
            [http.middlewares.Plugin5.plugin.inFlightReq.sourceCriterion.ipStrategy]
              depth = 42
              excludedIPs = ["foobar", "foobar"]
    [http.middlewares.Plugin6]
      [http.middlewares.Plugin6.plugin]
        [http.middlewares.Plugin6.plugin.rateLimit]
          average = 42
          burst = 42
          denyOnError = true
          period = "42s"
          responseHeaders = true
          timeout = "42s"
          [http.middlewares.Plugin6.plugin.rateLimit.sourceCriterion]
            requestHeaderName = "foobar"
            requestHost = true
            [http.middlewares.Plugin6.plugin.rateLimit.sourceCriterion.ipStrategy]
              depth = 42
              excludedIPs = ["foobar", "foobar"]
    [http.middlewares.Plugin7]
      [http.middlewares.Plugin7.plugin]
        [http.middlewares.Plugin7.plugin.httpCache]
          disableCacheStatusHeader = true
          excludedResponseCodes = ["foobar", "foobar"]
          maxStale = 42
          maxTtl = 42
          [http.middlewares.Plugin7.plugin.httpCache.memory]
            limit = "foobar"
    [http.middlewares.Plugin8]
      [http.middlewares.Plugin8.plugin]
        [http.middlewares.Plugin8.plugin.apikey]
          kind = "foobar"
          secretNonBase64Encoded = true
          secretParam = "foobar"
          secretValue = "foobar"
          secretValues = ["foobar", "foobar"]
    [http.middlewares.Plugin9]
      [http.middlewares.Plugin9.plugin]
        [http.middlewares.Plugin9.plugin.opa]
          allow = "foobar"
          bundlePath = "foobar"
          policy = "foobar"
          [http.middlewares.Plugin9.plugin.opa.forwardHeaders]
            name0 = "foobar"
            name1 = "foobar"
  [http.serversTransports]
    [http.serversTransports.ServersTransport0]
      serverName = "foobar"
      insecureSkipVerify = true
      rootCAs = ["foobar", "foobar"]
      maxIdleConnsPerHost = 42
      disableHTTP2 = true
      peerCertURI = "foobar"

      [[http.serversTransports.ServersTransport0.certificates]]
        certFile = "foobar"
        keyFile = "foobar"

      [[http.serversTransports.ServersTransport0.certificates]]
        certFile = "foobar"
        keyFile = "foobar"
      [http.serversTransports.ServersTransport0.forwardingTimeouts]
        dialTimeout = "42s"
        responseHeaderTimeout = "42s"
        idleConnTimeout = "42s"
        readIdleTimeout = "42s"
        pingTimeout = "42s"
    [http.serversTransports.ServersTransport1]
      serverName = "foobar"
      insecureSkipVerify = true
      rootCAs = ["foobar", "foobar"]
      maxIdleConnsPerHost = 42
      disableHTTP2 = true
      peerCertURI = "foobar"

      [[http.serversTransports.ServersTransport1.certificates]]
        certFile = "foobar"
        keyFile = "foobar"

      [[http.serversTransports.ServersTransport1.certificates]]
        certFile = "foobar"
        keyFile = "foobar"
      [http.serversTransports.ServersTransport1.forwardingTimeouts]
        dialTimeout = "42s"
        responseHeaderTimeout = "42s"
        idleConnTimeout = "42s"
        readIdleTimeout = "42s"
        pingTimeout = "42s"

[tcp]
  [tcp.routers]
    [tcp.routers.TCPRouter0]
      entryPoints = ["foobar", "foobar"]
      middlewares = ["foobar", "foobar"]
      service = "foobar"
      rule = "foobar"
      priority = 42
      [tcp.routers.TCPRouter0.tls]
        passthrough = true
        options = "foobar"
        certResolver = "foobar"

        [[tcp.routers.TCPRouter0.tls.domains]]
          main = "foobar"
          sans = ["foobar", "foobar"]

        [[tcp.routers.TCPRouter0.tls.domains]]
          main = "foobar"
          sans = ["foobar", "foobar"]
    [tcp.routers.TCPRouter1]
      entryPoints = ["foobar", "foobar"]
      middlewares = ["foobar", "foobar"]
      service = "foobar"
      rule = "foobar"
      priority = 42
      [tcp.routers.TCPRouter1.tls]
        passthrough = true
        options = "foobar"
        certResolver = "foobar"

        [[tcp.routers.TCPRouter1.tls.domains]]
          main = "foobar"
          sans = ["foobar", "foobar"]

        [[tcp.routers.TCPRouter1.tls.domains]]
          main = "foobar"
          sans = ["foobar", "foobar"]
  [tcp.services]
    [tcp.services.TCPService01]
      [tcp.services.TCPService01.loadBalancer]
        terminationDelay = 42
        [tcp.services.TCPService01.loadBalancer.proxyProtocol]
          version = 42

        [[tcp.services.TCPService01.loadBalancer.servers]]
          address = "foobar"

        [[tcp.services.TCPService01.loadBalancer.servers]]
          address = "foobar"
    [tcp.services.TCPService02]
      [tcp.services.TCPService02.weighted]

        [[tcp.services.TCPService02.weighted.services]]
          name = "foobar"
          weight = 42

        [[tcp.services.TCPService02.weighted.services]]
          name = "foobar"
          weight = 42
  [tcp.middlewares]
    [tcp.middlewares.TCPMiddleware0]
      [tcp.middlewares.TCPMiddleware0.inFlightConn]
        amount = 42
      [tcp.middlewares.TCPMiddleware0.ipWhiteList]
        sourceRange = ["foobar", "foobar"]
      [tcp.middlewares.TCPMiddleware0.ipAllowList]
        sourceRange = ["foobar", "foobar"]
    [tcp.middlewares.TCPMiddleware1]
      [tcp.middlewares.TCPMiddleware1.inFlightConn]
        amount = 42
      [tcp.middlewares.TCPMiddleware1.ipWhiteList]
        sourceRange = ["foobar", "foobar"]
      [tcp.middlewares.TCPMiddleware1.ipAllowList]
        sourceRange = ["foobar", "foobar"]

[udp]
  [udp.routers]
    [udp.routers.UDPRouter0]
      entryPoints = ["foobar", "foobar"]
      service = "foobar"
    [udp.routers.UDPRouter1]
      entryPoints = ["foobar", "foobar"]
      service = "foobar"
  [udp.services]
    [udp.services.UDPService0]
      [udp.services.UDPService0.loadBalancer]

        [[udp.services.UDPService0.loadBalancer.servers]]
          address = "foobar"

        [[udp.services.UDPService0.loadBalancer.servers]]
          address = "foobar"
      [udp.services.UDPService0.weighted]

        [[udp.services.UDPService0.weighted.services]]
          name = "foobar"
          weight = 42

        [[udp.services.UDPService0.weighted.services]]
          name = "foobar"
          weight = 42
    [udp.services.UDPService1]
      [udp.services.UDPService1.loadBalancer]

        [[udp.services.UDPService1.loadBalancer.servers]]
          address = "foobar"

        [[udp.services.UDPService1.loadBalancer.servers]]
          address = "foobar"
      [udp.services.UDPService1.weighted]

        [[udp.services.UDPService1.weighted.services]]
          name = "foobar"
          weight = 42

        [[udp.services.UDPService1.weighted.services]]
          name = "foobar"
          weight = 42

[tls]

  [[tls.certificates]]
    certFile = "foobar"
    keyFile = "foobar"
    stores = ["foobar", "foobar"]

  [[tls.certificates]]
    certFile = "foobar"
    keyFile = "foobar"
    stores = ["foobar", "foobar"]
  [tls.options]
    [tls.options.Options0]
      minVersion = "foobar"
      maxVersion = "foobar"
      cipherSuites = ["foobar", "foobar"]
      curvePreferences = ["foobar", "foobar"]
      sniStrict = true
      preferServerCipherSuites = true
      alpnProtocols = ["foobar", "foobar"]
      [tls.options.Options0.clientAuth]
        caFiles = ["foobar", "foobar"]
        clientAuthType = "foobar"
    [tls.options.Options1]
      minVersion = "foobar"
      maxVersion = "foobar"
      cipherSuites = ["foobar", "foobar"]
      curvePreferences = ["foobar", "foobar"]
      sniStrict = true
      preferServerCipherSuites = true
      alpnProtocols = ["foobar", "foobar"]
      [tls.options.Options1.clientAuth]
        caFiles = ["foobar", "foobar"]
        clientAuthType = "foobar"
  [tls.stores]
    [tls.stores.Store0]
      [tls.stores.Store0.defaultCertificate]
        certFile = "foobar"
        keyFile = "foobar"
      [tls.stores.Store0.defaultGeneratedCert]
        resolver = "foobar"
        [tls.stores.Store0.defaultGeneratedCert.domain]
          main = "foobar"
          sans = ["foobar", "foobar"]
    [tls.stores.Store1]
      [tls.stores.Store1.defaultCertificate]
        certFile = "foobar"
        keyFile = "foobar"
      [tls.stores.Store1.defaultGeneratedCert]
        resolver = "foobar"
        [tls.stores.Store1.defaultGeneratedCert.domain]
          main = "foobar"
          sans = ["foobar", "foobar"]