
To correctly handle a request, Traefik needs to wait for the firstįew bytes to arrive before it can decide what to do with it.įor protocols where the server is expected to send first, suchĪs SMTP, if no specific setup is in place, we could end up inĪ situation where both sides are waiting for data and the If you want to limit the router scope to a set of entry points, set the entry points option. If not specified, TCP routers will accept requests from all defined entry points. If no matching route is found for the TCP routers, then the HTTP routers will take over. If both HTTP routers and TCP routers listen to the same entry points, the TCP routers will apply before the HTTP routers. The character is not authorized in the router name General ¶ The supported provider table indicates if they allow generating certificates for a wildcard domain and its root domain.

The Traefik ACME client library lego supports some but not all DNS providers to work around this issue. It can lead to problems as all DNS providers keep DNS records cached for a given time (TTL) and this TTL can be greater than the challenge timeout making the DNS-01 challenge fail. In this case the generated DNS TXT record for both domains is the same.Įven though this behavior is DNS RFC compliant, Most likely the root domain should receive a certificate too, so it needs to be specified as SAN and 2 DNS-01 challenges are executed. Rule = "Host(``) & Path(`/bar`)"Īs described in Let's Encrypt's post wildcard certificates can only be generated through a DNS-01 challenge.

Match if the request client IP is one of the given IP/CIDR. It accepts a sequence of key=value pairs. Same as Host, only exists for historical reasons. The table below lists all the available matchers: RuleĬheck if there is a key keydefined in the headers, with the value valueĬheck if there is a key keydefined in the headers, with a value that matches the regular expression regexpĬheck if the request domain (host header value) targets one of the given domains. Host is OR Host is AND path is /traefik rule = "Host(``) || (Host(``) & Path(`/traefik`))"
