Explain a bit more around enabling HTTP3

This commit is contained in:
Manuel Zapf 2022-01-25 10:48:05 +01:00 committed by GitHub
parent 5a1c936ede
commit 390eb9cb61
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 13 deletions

View file

@ -426,12 +426,12 @@ Check out the [Errors middleware](../middlewares/http/errorpages.md#service) doc
## v2.5 to v2.6 ## v2.5 to v2.6
### HTTP3 ### HTTP/3
Traefik v2.6 introduces the `AdvertisedPort` option, Traefik v2.6 introduces the `AdvertisedPort` option,
which allows advertising, in the `Alt-Svc` header, a UDP port different from the one on which Traefik is actually listening (the EntryPoint's port). which allows advertising, in the `Alt-Svc` header, a UDP port different from the one on which Traefik is actually listening (the EntryPoint's port).
By doing so, it introduces a new configuration structure `http3`, which replaces the `enableHTTP3` option (which therefore doesn't exist anymore). By doing so, it introduces a new configuration structure `http3`, which replaces the `enableHTTP3` option (which therefore doesn't exist anymore).
To enable HTTP3 on an EntryPoint, please check out the [HTTP3 configuration](../routing/entrypoints.md#http3) documentation. To enable HTTP/3 on an EntryPoint, please check out the [HTTP/3 configuration](../routing/entrypoints.md#http3) documentation.
### Kubernetes Gateway API Provider ### Kubernetes Gateway API Provider

View file

@ -223,22 +223,22 @@ If both TCP and UDP are wanted for the same port, two entryPoints definitions ar
Full details for how to specify `address` can be found in [net.Listen](https://golang.org/pkg/net/#Listen) (and [net.Dial](https://golang.org/pkg/net/#Dial)) of the doc for go. Full details for how to specify `address` can be found in [net.Listen](https://golang.org/pkg/net/#Listen) (and [net.Dial](https://golang.org/pkg/net/#Dial)) of the doc for go.
### HTTP3 ### HTTP/3
#### `http3` #### `http3`
`http3` enables HTTP3 protocol on the entryPoint. `http3` enables HTTP/3 protocol on the entryPoint.
You can only enable HTTP3 on a TCP entrypoint. HTTP/3 requires a TCP entryPoint, as HTTP/3 always starts as a TCP connection that then gets upgraded to UDP.
Enabling HTTP3 will automatically add the correct headers for the connection upgrade to HTTP3. In most scenarios, this entryPoint is the same as the one used for TLS traffic.
??? info "HTTP3 uses UDP+TLS" ??? info "HTTP/3 uses UDP+TLS"
As HTTP3 uses UDP, you can't have a TCP entrypoint with HTTP3 on the same port as a UDP entrypoint. As HTTP/3 uses UDP, you can't have a TCP entryPoint with HTTP/3 on the same port as a UDP entryPoint.
Since HTTP3 requires the use of TLS, only routers with TLS enabled will be usable with HTTP3. Since HTTP/3 requires the use of TLS, only routers with TLS enabled will be usable with HTTP/3.
!!! warning "Enabling Experimental HTTP3" !!! warning "Enabling Experimental HTTP/3"
As the HTTP3 spec is still in draft, HTTP3 support in Traefik is an experimental feature and needs to be activated As the HTTP/3 spec is still in draft, HTTP/3 support in Traefik is an experimental feature and needs to be activated
in the experimental section of the static configuration. in the experimental section of the static configuration.
```yaml tab="File (YAML)" ```yaml tab="File (YAML)"
@ -263,8 +263,8 @@ Enabling HTTP3 will automatically add the correct headers for the connection upg
#### `advertisedPort` #### `advertisedPort`
`http3.advertisedPort` defines which UDP port to advertise as the HTTP3 authority. `http3.advertisedPort` defines which UDP port to advertise as the HTTP/3 authority.
It defaults to the entrypoint's address port. It defaults to the entryPoint's address port.
It can be used to override the authority in the `alt-svc` header, for example if the public facing port is different from where Traefik is listening. It can be used to override the authority in the `alt-svc` header, for example if the public facing port is different from where Traefik is listening.
!!! info "http3.advertisedPort" !!! info "http3.advertisedPort"