Add HTTP3Config

This commit is contained in:
valerauko 2021-09-10 21:58:13 +09:00 committed by GitHub
parent ba3967aa16
commit 60ff50a675
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 207 additions and 23 deletions

View file

@ -100,7 +100,8 @@ They can be defined by using a file (YAML or TOML) or CLI arguments.
entryPoints:
name:
address: ":8888" # same as ":8888/tcp"
enableHTTP3: true
http3:
advertisedPort: 8888
transport:
lifeCycle:
requestAcceptGraceTimeout: 42
@ -126,7 +127,8 @@ They can be defined by using a file (YAML or TOML) or CLI arguments.
[entryPoints]
[entryPoints.name]
address = ":8888" # same as ":8888/tcp"
enableHTTP3 = true
[entryPoints.name.http3]
advertisedPort = 8888
[entryPoints.name.transport]
[entryPoints.name.transport.lifeCycle]
requestAcceptGraceTimeout = 42
@ -146,7 +148,7 @@ They can be defined by using a file (YAML or TOML) or CLI arguments.
```bash tab="CLI"
## Static configuration
--entryPoints.name.address=:8888 # same as :8888/tcp
--entryPoints.name.http3=true
--entryPoints.name.http3.advertisedport=8888
--entryPoints.name.transport.lifeCycle.requestAcceptGraceTimeout=42
--entryPoints.name.transport.lifeCycle.graceTimeOut=42
--entryPoints.name.transport.respondingTimeouts.readTimeout=42
@ -221,9 +223,11 @@ 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.
### EnableHTTP3
### HTTP3
`enableHTTP3` defines that you want to enable HTTP3 on this `address`.
#### `http3`
`http3` enables HTTP3 protocol on the entryPoint.
You can only enable HTTP3 on a TCP entrypoint.
Enabling HTTP3 will automatically add the correct headers for the connection upgrade to HTTP3.
@ -240,22 +244,51 @@ Enabling HTTP3 will automatically add the correct headers for the connection upg
```yaml tab="File (YAML)"
experimental:
http3: true
entryPoints:
name:
enableHTTP3: true
http3: {}
```
```toml tab="File (TOML)"
[experimental]
http3 = true
[entryPoints.name]
enableHTTP3 = true
[entryPoints.name.http3]
```
```bash tab="CLI"
--experimental.http3=true --entrypoints.name.enablehttp3=true
--experimental.http3=true --entrypoints.name.http3
```
#### `advertisedPort`
`http3.advertisedPort` defines which UDP port to advertise as the HTTP3 authority.
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.
!!! info "http3.advertisedPort"
```yaml tab="File (YAML)"
experimental:
http3: true
entryPoints:
name:
http3:
advertisedPort: 443
```
```toml tab="File (TOML)"
[experimental]
http3 = true
[entryPoints.name.http3]
advertisedPort = 443
```
```bash tab="CLI"
--experimental.http3=true --entrypoints.name.http3.advertisedport=443
```
### Forwarded Headers