Changing default file format for the snippets from TOML to YAML
This commit is contained in:
parent
99a23b0414
commit
c9df233d24
79 changed files with 3965 additions and 3964 deletions
|
@ -13,20 +13,20 @@ and whether to listen for TCP or UDP.
|
|||
|
||||
??? example "Port 80 only"
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
## Static configuration
|
||||
[entryPoints]
|
||||
[entryPoints.web]
|
||||
address = ":80"
|
||||
```
|
||||
|
||||
```yaml tab="File (YAML)"
|
||||
## Static configuration
|
||||
entryPoints:
|
||||
web:
|
||||
address: ":80"
|
||||
```
|
||||
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
## Static configuration
|
||||
[entryPoints]
|
||||
[entryPoints.web]
|
||||
address = ":80"
|
||||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
## Static configuration
|
||||
--entryPoints.web.address=:80
|
||||
|
@ -34,28 +34,28 @@ and whether to listen for TCP or UDP.
|
|||
|
||||
We define an `entrypoint` called `web` that will listen on port `80`.
|
||||
|
||||
??? example "Port 80 & 443"
|
||||
??? example "Port 80 & 443"
|
||||
|
||||
```yaml tab="File (YAML)"
|
||||
## Static configuration
|
||||
entryPoints:
|
||||
web:
|
||||
address: ":80"
|
||||
|
||||
websecure:
|
||||
address: ":443"
|
||||
```
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
## Static configuration
|
||||
[entryPoints]
|
||||
[entryPoints.web]
|
||||
address = ":80"
|
||||
|
||||
|
||||
[entryPoints.websecure]
|
||||
address = ":443"
|
||||
```
|
||||
|
||||
```yaml tab="File (YAML)"
|
||||
## Static configuration
|
||||
entryPoints:
|
||||
web:
|
||||
address: ":80"
|
||||
|
||||
websecure:
|
||||
address: ":443"
|
||||
```
|
||||
|
||||
|
||||
```bash tab="CLI"
|
||||
## Static configuration
|
||||
--entryPoints.web.address=:80
|
||||
|
@ -63,17 +63,10 @@ and whether to listen for TCP or UDP.
|
|||
```
|
||||
|
||||
- Two entrypoints are defined: one called `web`, and the other called `websecure`.
|
||||
- `web` listens on port `80`, and `websecure` on port `443`.
|
||||
- `web` listens on port `80`, and `websecure` on port `443`.
|
||||
|
||||
??? example "UDP on port 1704"
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
## Static configuration
|
||||
[entryPoints]
|
||||
[entryPoints.streaming]
|
||||
address = ":1704/udp"
|
||||
```
|
||||
|
||||
```yaml tab="File (YAML)"
|
||||
## Static configuration
|
||||
entryPoints:
|
||||
|
@ -81,6 +74,13 @@ and whether to listen for TCP or UDP.
|
|||
address: ":1704/udp"
|
||||
```
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
## Static configuration
|
||||
[entryPoints]
|
||||
[entryPoints.streaming]
|
||||
address = ":1704/udp"
|
||||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
## Static configuration
|
||||
--entryPoints.streaming.address=:1704/udp
|
||||
|
@ -91,31 +91,10 @@ and whether to listen for TCP or UDP.
|
|||
### General
|
||||
|
||||
EntryPoints are part of the [static configuration](../getting-started/configuration-overview.md#the-static-configuration).
|
||||
They can be defined by using a file (TOML or YAML) or CLI arguments.
|
||||
They can be defined by using a file (YAML or TOML) or CLI arguments.
|
||||
|
||||
??? info "See the complete reference for the list of available options"
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
## Static configuration
|
||||
[entryPoints]
|
||||
[entryPoints.name]
|
||||
address = ":8888" # same as ":8888/tcp"
|
||||
[entryPoints.name.transport]
|
||||
[entryPoints.name.transport.lifeCycle]
|
||||
requestAcceptGraceTimeout = 42
|
||||
graceTimeOut = 42
|
||||
[entryPoints.name.transport.respondingTimeouts]
|
||||
readTimeout = 42
|
||||
writeTimeout = 42
|
||||
idleTimeout = 42
|
||||
[entryPoints.name.proxyProtocol]
|
||||
insecure = true
|
||||
trustedIPs = ["127.0.0.1", "192.168.0.1"]
|
||||
[entryPoints.name.forwardedHeaders]
|
||||
insecure = true
|
||||
trustedIPs = ["127.0.0.1", "192.168.0.1"]
|
||||
```
|
||||
|
||||
|
||||
```yaml tab="File (YAML)"
|
||||
## Static configuration
|
||||
entryPoints:
|
||||
|
@ -140,7 +119,28 @@ They can be defined by using a file (TOML or YAML) or CLI arguments.
|
|||
- "127.0.0.1"
|
||||
- "192.168.0.1"
|
||||
```
|
||||
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
## Static configuration
|
||||
[entryPoints]
|
||||
[entryPoints.name]
|
||||
address = ":8888" # same as ":8888/tcp"
|
||||
[entryPoints.name.transport]
|
||||
[entryPoints.name.transport.lifeCycle]
|
||||
requestAcceptGraceTimeout = 42
|
||||
graceTimeOut = 42
|
||||
[entryPoints.name.transport.respondingTimeouts]
|
||||
readTimeout = 42
|
||||
writeTimeout = 42
|
||||
idleTimeout = 42
|
||||
[entryPoints.name.proxyProtocol]
|
||||
insecure = true
|
||||
trustedIPs = ["127.0.0.1", "192.168.0.1"]
|
||||
[entryPoints.name.forwardedHeaders]
|
||||
insecure = true
|
||||
trustedIPs = ["127.0.0.1", "192.168.0.1"]
|
||||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
## Static configuration
|
||||
--entryPoints.name.address=:8888 # same as :8888/tcp
|
||||
|
@ -170,15 +170,6 @@ If both TCP and UDP are wanted for the same port, two entryPoints definitions ar
|
|||
|
||||
??? example "Both TCP and UDP on Port 3179"
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
## Static configuration
|
||||
[entryPoints]
|
||||
[entryPoints.tcpep]
|
||||
address = ":3179"
|
||||
[entryPoints.udpep]
|
||||
address = ":3179/udp"
|
||||
```
|
||||
|
||||
```yaml tab="File (YAML)"
|
||||
## Static configuration
|
||||
entryPoints:
|
||||
|
@ -188,6 +179,15 @@ If both TCP and UDP are wanted for the same port, two entryPoints definitions ar
|
|||
address: ":3179/udp"
|
||||
```
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
## Static configuration
|
||||
[entryPoints]
|
||||
[entryPoints.tcpep]
|
||||
address = ":3179"
|
||||
[entryPoints.udpep]
|
||||
address = ":3179/udp"
|
||||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
## Static configuration
|
||||
--entryPoints.tcpep.address=:3179
|
||||
|
@ -196,13 +196,6 @@ If both TCP and UDP are wanted for the same port, two entryPoints definitions ar
|
|||
|
||||
??? example "Listen on Specific IP Addresses Only"
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
[entryPoints.specificIPv4]
|
||||
address = "192.168.2.7:8888"
|
||||
[entryPoints.specificIPv6]
|
||||
address = "[2001:db8::1]:8888"
|
||||
```
|
||||
|
||||
```yaml tab="File (yaml)"
|
||||
entryPoints:
|
||||
specificIPv4:
|
||||
|
@ -210,12 +203,19 @@ If both TCP and UDP are wanted for the same port, two entryPoints definitions ar
|
|||
specificIPv6:
|
||||
address: "[2001:db8::1]:8888"
|
||||
```
|
||||
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
[entryPoints.specificIPv4]
|
||||
address = "192.168.2.7:8888"
|
||||
[entryPoints.specificIPv6]
|
||||
address = "[2001:db8::1]:8888"
|
||||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
--entrypoints.specificIPv4.address=192.168.2.7:8888
|
||||
--entrypoints.specificIPv6.address=[2001:db8::1]:8888
|
||||
```
|
||||
|
||||
|
||||
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.
|
||||
|
||||
### Forwarded Headers
|
||||
|
@ -223,19 +223,9 @@ If both TCP and UDP are wanted for the same port, two entryPoints definitions ar
|
|||
You can configure Traefik to trust the forwarded headers information (`X-Forwarded-*`).
|
||||
|
||||
??? info "`forwardedHeaders.trustedIPs`"
|
||||
|
||||
|
||||
Trusting Forwarded Headers from specific IPs.
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
## Static configuration
|
||||
[entryPoints]
|
||||
[entryPoints.web]
|
||||
address = ":80"
|
||||
|
||||
[entryPoints.web.forwardedHeaders]
|
||||
trustedIPs = ["127.0.0.1/32", "192.168.1.7"]
|
||||
```
|
||||
|
||||
```yaml tab="File (YAML)"
|
||||
## Static configuration
|
||||
entryPoints:
|
||||
|
@ -246,7 +236,17 @@ You can configure Traefik to trust the forwarded headers information (`X-Forward
|
|||
- "127.0.0.1/32"
|
||||
- "192.168.1.7"
|
||||
```
|
||||
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
## Static configuration
|
||||
[entryPoints]
|
||||
[entryPoints.web]
|
||||
address = ":80"
|
||||
|
||||
[entryPoints.web.forwardedHeaders]
|
||||
trustedIPs = ["127.0.0.1/32", "192.168.1.7"]
|
||||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
## Static configuration
|
||||
--entryPoints.web.address=:80
|
||||
|
@ -254,19 +254,9 @@ You can configure Traefik to trust the forwarded headers information (`X-Forward
|
|||
```
|
||||
|
||||
??? info "`forwardedHeaders.insecure`"
|
||||
|
||||
|
||||
Insecure Mode (Always Trusting Forwarded Headers).
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
## Static configuration
|
||||
[entryPoints]
|
||||
[entryPoints.web]
|
||||
address = ":80"
|
||||
|
||||
[entryPoints.web.forwardedHeaders]
|
||||
insecure = true
|
||||
```
|
||||
|
||||
```yaml tab="File (YAML)"
|
||||
## Static configuration
|
||||
entryPoints:
|
||||
|
@ -275,7 +265,17 @@ You can configure Traefik to trust the forwarded headers information (`X-Forward
|
|||
forwardedHeaders:
|
||||
insecure: true
|
||||
```
|
||||
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
## Static configuration
|
||||
[entryPoints]
|
||||
[entryPoints.web]
|
||||
address = ":80"
|
||||
|
||||
[entryPoints.web.forwardedHeaders]
|
||||
insecure = true
|
||||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
## Static configuration
|
||||
--entryPoints.web.address=:80
|
||||
|
@ -290,25 +290,15 @@ You can configure Traefik to trust the forwarded headers information (`X-Forward
|
|||
Setting them has no effect for UDP entryPoints.
|
||||
|
||||
??? info "`transport.respondingTimeouts.readTimeout`"
|
||||
|
||||
|
||||
_Optional, Default=0s_
|
||||
|
||||
`readTimeout` is the maximum duration for reading the entire request, including the body.
|
||||
|
||||
|
||||
`readTimeout` is the maximum duration for reading the entire request, including the body.
|
||||
|
||||
If zero, no timeout exists.
|
||||
Can be provided in a format supported by [time.ParseDuration](https://golang.org/pkg/time/#ParseDuration) or as raw values (digits).
|
||||
If no units are provided, the value is parsed assuming seconds.
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
## Static configuration
|
||||
[entryPoints]
|
||||
[entryPoints.name]
|
||||
address = ":8888"
|
||||
[entryPoints.name.transport]
|
||||
[entryPoints.name.transport.respondingTimeouts]
|
||||
readTimeout = 42
|
||||
```
|
||||
|
||||
|
||||
```yaml tab="File (YAML)"
|
||||
## Static configuration
|
||||
entryPoints:
|
||||
|
@ -318,24 +308,7 @@ Setting them has no effect for UDP entryPoints.
|
|||
respondingTimeouts:
|
||||
readTimeout: 42
|
||||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
## Static configuration
|
||||
--entryPoints.name.address=:8888
|
||||
--entryPoints.name.transport.respondingTimeouts.readTimeout=42
|
||||
```
|
||||
|
||||
??? info "`transport.respondingTimeouts.writeTimeout`"
|
||||
|
||||
_Optional, Default=0s_
|
||||
|
||||
`writeTimeout` is the maximum duration before timing out writes of the response.
|
||||
|
||||
It covers the time from the end of the request header read to the end of the response write.
|
||||
If zero, no timeout exists.
|
||||
Can be provided in a format supported by [time.ParseDuration](https://golang.org/pkg/time/#ParseDuration) or as raw values (digits).
|
||||
If no units are provided, the value is parsed assuming seconds.
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
## Static configuration
|
||||
[entryPoints]
|
||||
|
@ -343,9 +316,26 @@ Setting them has no effect for UDP entryPoints.
|
|||
address = ":8888"
|
||||
[entryPoints.name.transport]
|
||||
[entryPoints.name.transport.respondingTimeouts]
|
||||
writeTimeout = 42
|
||||
readTimeout = 42
|
||||
```
|
||||
|
||||
|
||||
```bash tab="CLI"
|
||||
## Static configuration
|
||||
--entryPoints.name.address=:8888
|
||||
--entryPoints.name.transport.respondingTimeouts.readTimeout=42
|
||||
```
|
||||
|
||||
??? info "`transport.respondingTimeouts.writeTimeout`"
|
||||
|
||||
_Optional, Default=0s_
|
||||
|
||||
`writeTimeout` is the maximum duration before timing out writes of the response.
|
||||
|
||||
It covers the time from the end of the request header read to the end of the response write.
|
||||
If zero, no timeout exists.
|
||||
Can be provided in a format supported by [time.ParseDuration](https://golang.org/pkg/time/#ParseDuration) or as raw values (digits).
|
||||
If no units are provided, the value is parsed assuming seconds.
|
||||
|
||||
```yaml tab="File (YAML)"
|
||||
## Static configuration
|
||||
entryPoints:
|
||||
|
@ -355,23 +345,7 @@ Setting them has no effect for UDP entryPoints.
|
|||
respondingTimeouts:
|
||||
writeTimeout: 42
|
||||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
## Static configuration
|
||||
--entryPoints.name.address=:8888
|
||||
--entryPoints.name.transport.respondingTimeouts.writeTimeout=42
|
||||
```
|
||||
|
||||
??? info "`transport.respondingTimeouts.idleTimeout`"
|
||||
|
||||
_Optional, Default=180s_
|
||||
|
||||
`idleTimeout` is the maximum duration an idle (keep-alive) connection will remain idle before closing itself.
|
||||
|
||||
If zero, no timeout exists.
|
||||
Can be provided in a format supported by [time.ParseDuration](https://golang.org/pkg/time/#ParseDuration) or as raw values (digits).
|
||||
If no units are provided, the value is parsed assuming seconds.
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
## Static configuration
|
||||
[entryPoints]
|
||||
|
@ -379,9 +353,25 @@ Setting them has no effect for UDP entryPoints.
|
|||
address = ":8888"
|
||||
[entryPoints.name.transport]
|
||||
[entryPoints.name.transport.respondingTimeouts]
|
||||
idleTimeout = 42
|
||||
writeTimeout = 42
|
||||
```
|
||||
|
||||
|
||||
```bash tab="CLI"
|
||||
## Static configuration
|
||||
--entryPoints.name.address=:8888
|
||||
--entryPoints.name.transport.respondingTimeouts.writeTimeout=42
|
||||
```
|
||||
|
||||
??? info "`transport.respondingTimeouts.idleTimeout`"
|
||||
|
||||
_Optional, Default=180s_
|
||||
|
||||
`idleTimeout` is the maximum duration an idle (keep-alive) connection will remain idle before closing itself.
|
||||
|
||||
If zero, no timeout exists.
|
||||
Can be provided in a format supported by [time.ParseDuration](https://golang.org/pkg/time/#ParseDuration) or as raw values (digits).
|
||||
If no units are provided, the value is parsed assuming seconds.
|
||||
|
||||
```yaml tab="File (YAML)"
|
||||
## Static configuration
|
||||
entryPoints:
|
||||
|
@ -391,7 +381,17 @@ Setting them has no effect for UDP entryPoints.
|
|||
respondingTimeouts:
|
||||
idleTimeout: 42
|
||||
```
|
||||
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
## Static configuration
|
||||
[entryPoints]
|
||||
[entryPoints.name]
|
||||
address = ":8888"
|
||||
[entryPoints.name.transport]
|
||||
[entryPoints.name.transport.respondingTimeouts]
|
||||
idleTimeout = 42
|
||||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
## Static configuration
|
||||
--entryPoints.name.address=:8888
|
||||
|
@ -403,27 +403,17 @@ Setting them has no effect for UDP entryPoints.
|
|||
Controls the behavior of Traefik during the shutdown phase.
|
||||
|
||||
??? info "`lifeCycle.requestAcceptGraceTimeout`"
|
||||
|
||||
|
||||
_Optional, Default=0s_
|
||||
|
||||
|
||||
Duration to keep accepting requests prior to initiating the graceful termination period (as defined by the `graceTimeOut` option).
|
||||
This option is meant to give downstream load-balancers sufficient time to take Traefik out of rotation.
|
||||
|
||||
|
||||
Can be provided in a format supported by [time.ParseDuration](https://golang.org/pkg/time/#ParseDuration) or as raw values (digits).
|
||||
|
||||
|
||||
If no units are provided, the value is parsed assuming seconds.
|
||||
The zero duration disables the request accepting grace period, i.e., Traefik will immediately proceed to the grace period.
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
## Static configuration
|
||||
[entryPoints]
|
||||
[entryPoints.name]
|
||||
address = ":8888"
|
||||
[entryPoints.name.transport]
|
||||
[entryPoints.name.transport.lifeCycle]
|
||||
requestAcceptGraceTimeout = 42
|
||||
```
|
||||
|
||||
|
||||
```yaml tab="File (YAML)"
|
||||
## Static configuration
|
||||
entryPoints:
|
||||
|
@ -433,25 +423,7 @@ Controls the behavior of Traefik during the shutdown phase.
|
|||
lifeCycle:
|
||||
requestAcceptGraceTimeout: 42
|
||||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
## Static configuration
|
||||
--entryPoints.name.address=:8888
|
||||
--entryPoints.name.transport.lifeCycle.requestAcceptGraceTimeout=42
|
||||
```
|
||||
|
||||
??? info "`lifeCycle.graceTimeOut`"
|
||||
|
||||
_Optional, Default=10s_
|
||||
|
||||
Duration to give active requests a chance to finish before Traefik stops.
|
||||
|
||||
Can be provided in a format supported by [time.ParseDuration](https://golang.org/pkg/time/#ParseDuration) or as raw values (digits).
|
||||
|
||||
If no units are provided, the value is parsed assuming seconds.
|
||||
|
||||
!!! warning "In this time frame no new requests are accepted."
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
## Static configuration
|
||||
[entryPoints]
|
||||
|
@ -459,9 +431,27 @@ Controls the behavior of Traefik during the shutdown phase.
|
|||
address = ":8888"
|
||||
[entryPoints.name.transport]
|
||||
[entryPoints.name.transport.lifeCycle]
|
||||
graceTimeOut = 42
|
||||
requestAcceptGraceTimeout = 42
|
||||
```
|
||||
|
||||
|
||||
```bash tab="CLI"
|
||||
## Static configuration
|
||||
--entryPoints.name.address=:8888
|
||||
--entryPoints.name.transport.lifeCycle.requestAcceptGraceTimeout=42
|
||||
```
|
||||
|
||||
??? info "`lifeCycle.graceTimeOut`"
|
||||
|
||||
_Optional, Default=10s_
|
||||
|
||||
Duration to give active requests a chance to finish before Traefik stops.
|
||||
|
||||
Can be provided in a format supported by [time.ParseDuration](https://golang.org/pkg/time/#ParseDuration) or as raw values (digits).
|
||||
|
||||
If no units are provided, the value is parsed assuming seconds.
|
||||
|
||||
!!! warning "In this time frame no new requests are accepted."
|
||||
|
||||
```yaml tab="File (YAML)"
|
||||
## Static configuration
|
||||
entryPoints:
|
||||
|
@ -471,7 +461,17 @@ Controls the behavior of Traefik during the shutdown phase.
|
|||
lifeCycle:
|
||||
graceTimeOut: 42
|
||||
```
|
||||
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
## Static configuration
|
||||
[entryPoints]
|
||||
[entryPoints.name]
|
||||
address = ":8888"
|
||||
[entryPoints.name.transport]
|
||||
[entryPoints.name.transport.lifeCycle]
|
||||
graceTimeOut = 42
|
||||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
## Static configuration
|
||||
--entryPoints.name.address=:8888
|
||||
|
@ -486,20 +486,10 @@ If Proxy Protocol header parsing is enabled for the entry point, this entry poin
|
|||
|
||||
If the Proxy Protocol header is passed, then the version is determined automatically.
|
||||
|
||||
??? info "`proxyProtocol.trustedIPs`"
|
||||
|
||||
??? info "`proxyProtocol.trustedIPs`"
|
||||
|
||||
Enabling Proxy Protocol with Trusted IPs.
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
## Static configuration
|
||||
[entryPoints]
|
||||
[entryPoints.web]
|
||||
address = ":80"
|
||||
|
||||
[entryPoints.web.proxyProtocol]
|
||||
trustedIPs = ["127.0.0.1/32", "192.168.1.7"]
|
||||
```
|
||||
|
||||
```yaml tab="File (YAML)"
|
||||
## Static configuration
|
||||
entryPoints:
|
||||
|
@ -510,7 +500,17 @@ If the Proxy Protocol header is passed, then the version is determined automatic
|
|||
- "127.0.0.1/32"
|
||||
- "192.168.1.7"
|
||||
```
|
||||
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
## Static configuration
|
||||
[entryPoints]
|
||||
[entryPoints.web]
|
||||
address = ":80"
|
||||
|
||||
[entryPoints.web.proxyProtocol]
|
||||
trustedIPs = ["127.0.0.1/32", "192.168.1.7"]
|
||||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
--entryPoints.web.address=:80
|
||||
--entryPoints.web.proxyProtocol.trustedIPs=127.0.0.1/32,192.168.1.7
|
||||
|
@ -521,20 +521,10 @@ If the Proxy Protocol header is passed, then the version is determined automatic
|
|||
??? info "`proxyProtocol.insecure`"
|
||||
|
||||
Insecure Mode (Testing Environment Only).
|
||||
|
||||
|
||||
In a test environments, you can configure Traefik to trust every incoming connection.
|
||||
Doing so, every remote client address will be replaced (`trustedIPs` won't have any effect)
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
## Static configuration
|
||||
[entryPoints]
|
||||
[entryPoints.web]
|
||||
address = ":80"
|
||||
|
||||
[entryPoints.web.proxyProtocol]
|
||||
insecure = true
|
||||
```
|
||||
|
||||
```yaml tab="File (YAML)"
|
||||
## Static configuration
|
||||
entryPoints:
|
||||
|
@ -543,7 +533,17 @@ If the Proxy Protocol header is passed, then the version is determined automatic
|
|||
proxyProtocol:
|
||||
insecure: true
|
||||
```
|
||||
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
## Static configuration
|
||||
[entryPoints]
|
||||
[entryPoints.web]
|
||||
address = ":80"
|
||||
|
||||
[entryPoints.web.proxyProtocol]
|
||||
insecure = true
|
||||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
--entryPoints.web.address=:80
|
||||
--entryPoints.web.proxyProtocol.insecure
|
||||
|
@ -561,21 +561,7 @@ This whole section is dedicated to options, keyed by entry point, that will appl
|
|||
### Redirection
|
||||
|
||||
??? example "HTTPS redirection (80 to 443)"
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
[entryPoints.web]
|
||||
address = ":80"
|
||||
|
||||
[entryPoints.web.http]
|
||||
[entryPoints.web.http.redirections]
|
||||
[entryPoints.web.http.redirections.entryPoint]
|
||||
to = "websecure"
|
||||
scheme = "https"
|
||||
|
||||
[entryPoints.websecure]
|
||||
address = ":443"
|
||||
```
|
||||
|
||||
|
||||
```yaml tab="File (YAML)"
|
||||
entryPoints:
|
||||
web:
|
||||
|
@ -585,11 +571,25 @@ This whole section is dedicated to options, keyed by entry point, that will appl
|
|||
entryPoint:
|
||||
to: websecure
|
||||
scheme: https
|
||||
|
||||
|
||||
websecure:
|
||||
address: :443
|
||||
```
|
||||
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
[entryPoints.web]
|
||||
address = ":80"
|
||||
|
||||
[entryPoints.web.http]
|
||||
[entryPoints.web.http.redirections]
|
||||
[entryPoints.web.http.redirections.entryPoint]
|
||||
to = "websecure"
|
||||
scheme = "https"
|
||||
|
||||
[entryPoints.websecure]
|
||||
address = ":443"
|
||||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
--entrypoints.web.address=:80
|
||||
--entrypoints.web.http.redirections.entryPoint.to=websecure
|
||||
|
@ -602,22 +602,14 @@ This whole section is dedicated to options, keyed by entry point, that will appl
|
|||
This section is a convenience to enable (permanent) redirecting of all incoming requests on an entry point (e.g. port `80`) to another entry point (e.g. port `443`) or an explicit port (`:443`).
|
||||
|
||||
??? info "`entryPoint.to`"
|
||||
|
||||
|
||||
_Required_
|
||||
|
||||
|
||||
The target element, it can be:
|
||||
|
||||
|
||||
- an entry point name (ex: `websecure`)
|
||||
- a port (`:443`)
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
[entryPoints.foo]
|
||||
# ...
|
||||
[entryPoints.foo.http.redirections]
|
||||
[entryPoints.foo.http.redirections.entryPoint]
|
||||
to = "websecure"
|
||||
```
|
||||
|
||||
|
||||
```yaml tab="File (YAML)"
|
||||
entryPoints:
|
||||
foo:
|
||||
|
@ -627,26 +619,25 @@ This section is a convenience to enable (permanent) redirecting of all incoming
|
|||
entryPoint:
|
||||
to: websecure
|
||||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
--entrypoints.foo.http.redirections.entryPoint.to=websecure
|
||||
```
|
||||
|
||||
??? info "`entryPoint.scheme`"
|
||||
|
||||
_Optional, Default="https"_
|
||||
|
||||
The redirection target scheme.
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
[entryPoints.foo]
|
||||
# ...
|
||||
[entryPoints.foo.http.redirections]
|
||||
[entryPoints.foo.http.redirections.entryPoint]
|
||||
# ...
|
||||
scheme = "https"
|
||||
to = "websecure"
|
||||
```
|
||||
|
||||
|
||||
```bash tab="CLI"
|
||||
--entrypoints.foo.http.redirections.entryPoint.to=websecure
|
||||
```
|
||||
|
||||
??? info "`entryPoint.scheme`"
|
||||
|
||||
_Optional, Default="https"_
|
||||
|
||||
The redirection target scheme.
|
||||
|
||||
```yaml tab="File (YAML)"
|
||||
entryPoints:
|
||||
foo:
|
||||
|
@ -657,16 +648,6 @@ This section is a convenience to enable (permanent) redirecting of all incoming
|
|||
# ...
|
||||
scheme: https
|
||||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
--entrypoints.foo.http.redirections.entryPoint.scheme=https
|
||||
```
|
||||
|
||||
??? info "`entryPoint.permanent`"
|
||||
|
||||
_Optional, Default=true_
|
||||
|
||||
To apply a permanent redirection.
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
[entryPoints.foo]
|
||||
|
@ -674,9 +655,19 @@ This section is a convenience to enable (permanent) redirecting of all incoming
|
|||
[entryPoints.foo.http.redirections]
|
||||
[entryPoints.foo.http.redirections.entryPoint]
|
||||
# ...
|
||||
permanent = true
|
||||
scheme = "https"
|
||||
```
|
||||
|
||||
|
||||
```bash tab="CLI"
|
||||
--entrypoints.foo.http.redirections.entryPoint.scheme=https
|
||||
```
|
||||
|
||||
??? info "`entryPoint.permanent`"
|
||||
|
||||
_Optional, Default=true_
|
||||
|
||||
To apply a permanent redirection.
|
||||
|
||||
```yaml tab="File (YAML)"
|
||||
entryPoints:
|
||||
foo:
|
||||
|
@ -687,16 +678,6 @@ This section is a convenience to enable (permanent) redirecting of all incoming
|
|||
# ...
|
||||
permanent: true
|
||||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
--entrypoints.foo.http.redirections.entrypoint.permanent=true
|
||||
```
|
||||
|
||||
??? info "`entryPoint.priority`"
|
||||
|
||||
_Optional, Default=1_
|
||||
|
||||
Priority of the generated router.
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
[entryPoints.foo]
|
||||
|
@ -704,9 +685,19 @@ This section is a convenience to enable (permanent) redirecting of all incoming
|
|||
[entryPoints.foo.http.redirections]
|
||||
[entryPoints.foo.http.redirections.entryPoint]
|
||||
# ...
|
||||
priority = 10
|
||||
permanent = true
|
||||
```
|
||||
|
||||
|
||||
```bash tab="CLI"
|
||||
--entrypoints.foo.http.redirections.entrypoint.permanent=true
|
||||
```
|
||||
|
||||
??? info "`entryPoint.priority`"
|
||||
|
||||
_Optional, Default=1_
|
||||
|
||||
Priority of the generated router.
|
||||
|
||||
```yaml tab="File (YAML)"
|
||||
entryPoints:
|
||||
foo:
|
||||
|
@ -717,7 +708,16 @@ This section is a convenience to enable (permanent) redirecting of all incoming
|
|||
# ...
|
||||
priority: 10
|
||||
```
|
||||
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
[entryPoints.foo]
|
||||
# ...
|
||||
[entryPoints.foo.http.redirections]
|
||||
[entryPoints.foo.http.redirections.entryPoint]
|
||||
# ...
|
||||
priority = 10
|
||||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
--entrypoints.foo.http.redirections.entrypoint.priority=10
|
||||
```
|
||||
|
@ -726,14 +726,6 @@ This section is a convenience to enable (permanent) redirecting of all incoming
|
|||
|
||||
The list of middlewares that are prepended by default to the list of middlewares of each router associated to the named entry point.
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
[entryPoints.websecure]
|
||||
address = ":443"
|
||||
|
||||
[entryPoints.websecure.http]
|
||||
middlewares = ["auth@file", "strip@file"]
|
||||
```
|
||||
|
||||
```yaml tab="File (YAML)"
|
||||
entryPoints:
|
||||
websecure:
|
||||
|
@ -744,6 +736,14 @@ entryPoints:
|
|||
- strip@file
|
||||
```
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
[entryPoints.websecure]
|
||||
address = ":443"
|
||||
|
||||
[entryPoints.websecure.http]
|
||||
middlewares = ["auth@file", "strip@file"]
|
||||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
--entrypoints.websecure.address=:443
|
||||
--entrypoints.websecure.http.middlewares=auth@file,strip@file
|
||||
|
@ -757,21 +757,6 @@ If a TLS section (i.e. any of its fields) is user-defined, then the default conf
|
|||
|
||||
The TLS section is the same as the [TLS section on HTTP routers](./routers/index.md#tls).
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
[entryPoints.websecure]
|
||||
address = ":443"
|
||||
|
||||
[entryPoints.websecure.http.tls]
|
||||
options = "foobar"
|
||||
certResolver = "leresolver"
|
||||
[[entryPoints.websecure.http.tls.domains]]
|
||||
main = "example.com"
|
||||
sans = ["foo.example.com", "bar.example.com"]
|
||||
[[entryPoints.websecure.http.tls.domains]]
|
||||
main = "test.com"
|
||||
sans = ["foo.test.com", "bar.test.com"]
|
||||
```
|
||||
|
||||
```yaml tab="File (YAML)"
|
||||
entryPoints:
|
||||
websecure:
|
||||
|
@ -791,6 +776,21 @@ entryPoints:
|
|||
- bar.test.com
|
||||
```
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
[entryPoints.websecure]
|
||||
address = ":443"
|
||||
|
||||
[entryPoints.websecure.http.tls]
|
||||
options = "foobar"
|
||||
certResolver = "leresolver"
|
||||
[[entryPoints.websecure.http.tls.domains]]
|
||||
main = "example.com"
|
||||
sans = ["foo.example.com", "bar.example.com"]
|
||||
[[entryPoints.websecure.http.tls.domains]]
|
||||
main = "test.com"
|
||||
sans = ["foo.test.com", "bar.test.com"]
|
||||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
--entrypoints.websecure.address=:443
|
||||
--entrypoints.websecure.http.tls.options=foobar
|
||||
|
@ -802,15 +802,7 @@ entryPoints:
|
|||
```
|
||||
|
||||
??? example "Let's Encrypt"
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
[entryPoints.websecure]
|
||||
address = ":443"
|
||||
|
||||
[entryPoints.websecure.http.tls]
|
||||
certResolver = "leresolver"
|
||||
```
|
||||
|
||||
|
||||
```yaml tab="File (YAML)"
|
||||
entryPoints:
|
||||
websecure:
|
||||
|
@ -819,7 +811,15 @@ entryPoints:
|
|||
tls:
|
||||
certResolver: leresolver
|
||||
```
|
||||
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
[entryPoints.websecure]
|
||||
address = ":443"
|
||||
|
||||
[entryPoints.websecure.http.tls]
|
||||
certResolver = "leresolver"
|
||||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
--entrypoints.websecure.address=:443
|
||||
--entrypoints.websecure.http.tls.certResolver=leresolver
|
||||
|
|
|
@ -26,18 +26,6 @@ In the process, Traefik will make sure that the user is authenticated (using the
|
|||
|
||||
Static configuration:
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
[entryPoints]
|
||||
[entryPoints.web]
|
||||
# Listen on port 8081 for incoming requests
|
||||
address = ":8081"
|
||||
|
||||
[providers]
|
||||
# Enable the file provider to define routers / middlewares / services in file
|
||||
[providers.file]
|
||||
directory = "/path/to/dynamic/conf"
|
||||
```
|
||||
|
||||
```yaml tab="File (YAML)"
|
||||
entryPoints:
|
||||
web:
|
||||
|
@ -50,6 +38,18 @@ providers:
|
|||
directory: /path/to/dynamic/conf
|
||||
```
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
[entryPoints]
|
||||
[entryPoints.web]
|
||||
# Listen on port 8081 for incoming requests
|
||||
address = ":8081"
|
||||
|
||||
[providers]
|
||||
# Enable the file provider to define routers / middlewares / services in file
|
||||
[providers.file]
|
||||
directory = "/path/to/dynamic/conf"
|
||||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
# Listen on port 8081 for incoming requests
|
||||
--entryPoints.web.address=:8081
|
||||
|
@ -60,30 +60,6 @@ providers:
|
|||
|
||||
Dynamic configuration:
|
||||
|
||||
```toml tab="TOML"
|
||||
# http routing section
|
||||
[http]
|
||||
[http.routers]
|
||||
# Define a connection between requests and services
|
||||
[http.routers.to-whoami]
|
||||
rule = "Host(`example.com`) && PathPrefix(`/whoami/`)"
|
||||
# If the rule matches, applies the middleware
|
||||
middlewares = ["test-user"]
|
||||
# If the rule matches, forward to the whoami service (declared below)
|
||||
service = "whoami"
|
||||
|
||||
[http.middlewares]
|
||||
# Define an authentication mechanism
|
||||
[http.middlewares.test-user.basicAuth]
|
||||
users = ["test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/"]
|
||||
|
||||
[http.services]
|
||||
# Define how to reach an existing service on our infrastructure
|
||||
[http.services.whoami.loadBalancer]
|
||||
[[http.services.whoami.loadBalancer.servers]]
|
||||
url = "http://private/whoami-service"
|
||||
```
|
||||
|
||||
```yaml tab="YAML"
|
||||
# http routing section
|
||||
http:
|
||||
|
@ -112,6 +88,30 @@ http:
|
|||
- url: http://private/whoami-service
|
||||
```
|
||||
|
||||
```toml tab="TOML"
|
||||
# http routing section
|
||||
[http]
|
||||
[http.routers]
|
||||
# Define a connection between requests and services
|
||||
[http.routers.to-whoami]
|
||||
rule = "Host(`example.com`) && PathPrefix(`/whoami/`)"
|
||||
# If the rule matches, applies the middleware
|
||||
middlewares = ["test-user"]
|
||||
# If the rule matches, forward to the whoami service (declared below)
|
||||
service = "whoami"
|
||||
|
||||
[http.middlewares]
|
||||
# Define an authentication mechanism
|
||||
[http.middlewares.test-user.basicAuth]
|
||||
users = ["test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/"]
|
||||
|
||||
[http.services]
|
||||
# Define how to reach an existing service on our infrastructure
|
||||
[http.services.whoami.loadBalancer]
|
||||
[[http.services.whoami.loadBalancer.servers]]
|
||||
url = "http://private/whoami-service"
|
||||
```
|
||||
|
||||
!!! info ""
|
||||
|
||||
In this example, we use the [file provider](../providers/file.md).
|
||||
|
@ -125,7 +125,18 @@ http:
|
|||
??? example "Adding a TCP route for TLS requests on whoami.example.com"
|
||||
|
||||
**Static Configuration**
|
||||
|
||||
|
||||
```yaml tab="File (YAML)"
|
||||
entryPoints:
|
||||
web:
|
||||
# Listen on port 8081 for incoming requests
|
||||
address: :8081
|
||||
providers:
|
||||
# Enable the file provider to define routers / middlewares / services in file
|
||||
file:
|
||||
directory: /path/to/dynamic/conf
|
||||
```
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
[entryPoints]
|
||||
[entryPoints.web]
|
||||
|
@ -137,64 +148,17 @@ http:
|
|||
[providers.file]
|
||||
directory = "/path/to/dynamic/conf"
|
||||
```
|
||||
|
||||
```yaml tab="File (YAML)"
|
||||
entryPoints:
|
||||
web:
|
||||
# Listen on port 8081 for incoming requests
|
||||
address: :8081
|
||||
providers:
|
||||
# Enable the file provider to define routers / middlewares / services in file
|
||||
file:
|
||||
directory: /path/to/dynamic/conf
|
||||
```
|
||||
|
||||
|
||||
```bash tab="CLI"
|
||||
# Listen on port 8081 for incoming requests
|
||||
--entryPoints.web.address=:8081
|
||||
|
||||
|
||||
# Enable the file provider to define routers / middlewares / services in file
|
||||
--providers.file.directory=/path/to/dynamic/conf
|
||||
```
|
||||
|
||||
|
||||
**Dynamic Configuration**
|
||||
|
||||
```toml tab="TOML"
|
||||
# http routing section
|
||||
[http]
|
||||
[http.routers]
|
||||
# Define a connection between requests and services
|
||||
[http.routers.to-whoami]
|
||||
rule = "Host(`example.com`) && PathPrefix(`/whoami/`)"
|
||||
# If the rule matches, applies the middleware
|
||||
middlewares = ["test-user"]
|
||||
# If the rule matches, forward to the whoami service (declared below)
|
||||
service = "whoami"
|
||||
|
||||
[http.middlewares]
|
||||
# Define an authentication mechanism
|
||||
[http.middlewares.test-user.basicAuth]
|
||||
users = ["test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/"]
|
||||
|
||||
[http.services]
|
||||
# Define how to reach an existing service on our infrastructure
|
||||
[http.services.whoami.loadBalancer]
|
||||
[[http.services.whoami.loadBalancer.servers]]
|
||||
url = "http://private/whoami-service"
|
||||
|
||||
[tcp]
|
||||
[tcp.routers]
|
||||
[tcp.routers.to-whoami-tcp]
|
||||
rule = "HostSNI(`whoami-tcp.example.com`)"
|
||||
service = "whoami-tcp"
|
||||
[tcp.routers.to-whoami-tcp.tls]
|
||||
|
||||
[tcp.services]
|
||||
[tcp.services.whoami-tcp.loadBalancer]
|
||||
[[tcp.services.whoami-tcp.loadBalancer.servers]]
|
||||
address = "xx.xx.xx.xx:xx"
|
||||
```
|
||||
|
||||
```yaml tab="YAML"
|
||||
# http routing section
|
||||
http:
|
||||
|
@ -237,6 +201,42 @@ http:
|
|||
- address: xx.xx.xx.xx:xx
|
||||
```
|
||||
|
||||
```toml tab="TOML"
|
||||
# http routing section
|
||||
[http]
|
||||
[http.routers]
|
||||
# Define a connection between requests and services
|
||||
[http.routers.to-whoami]
|
||||
rule = "Host(`example.com`) && PathPrefix(`/whoami/`)"
|
||||
# If the rule matches, applies the middleware
|
||||
middlewares = ["test-user"]
|
||||
# If the rule matches, forward to the whoami service (declared below)
|
||||
service = "whoami"
|
||||
|
||||
[http.middlewares]
|
||||
# Define an authentication mechanism
|
||||
[http.middlewares.test-user.basicAuth]
|
||||
users = ["test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/"]
|
||||
|
||||
[http.services]
|
||||
# Define how to reach an existing service on our infrastructure
|
||||
[http.services.whoami.loadBalancer]
|
||||
[[http.services.whoami.loadBalancer.servers]]
|
||||
url = "http://private/whoami-service"
|
||||
|
||||
[tcp]
|
||||
[tcp.routers]
|
||||
[tcp.routers.to-whoami-tcp]
|
||||
rule = "HostSNI(`whoami-tcp.example.com`)"
|
||||
service = "whoami-tcp"
|
||||
[tcp.routers.to-whoami-tcp.tls]
|
||||
|
||||
[tcp.services]
|
||||
[tcp.services.whoami-tcp.loadBalancer]
|
||||
[[tcp.services.whoami-tcp.loadBalancer.servers]]
|
||||
address = "xx.xx.xx.xx:xx"
|
||||
```
|
||||
|
||||
## Transport configuration
|
||||
|
||||
Most of what happens to the connection between the clients and Traefik,
|
||||
|
@ -254,18 +254,18 @@ _Optional, Default=false_
|
|||
|
||||
`insecureSkipVerify` disables SSL certificate verification.
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
## Static configuration
|
||||
[serversTransport]
|
||||
insecureSkipVerify = true
|
||||
```
|
||||
|
||||
```yaml tab="File (YAML)"
|
||||
## Static configuration
|
||||
serversTransport:
|
||||
insecureSkipVerify: true
|
||||
```
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
## Static configuration
|
||||
[serversTransport]
|
||||
insecureSkipVerify = true
|
||||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
## Static configuration
|
||||
--serversTransport.insecureSkipVerify=true
|
||||
|
@ -278,12 +278,6 @@ _Optional_
|
|||
`rootCAs` is the list of certificates (as file paths, or data bytes)
|
||||
that will be set as Root Certificate Authorities when using a self-signed TLS certificate.
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
## Static configuration
|
||||
[serversTransport]
|
||||
rootCAs = ["foo.crt", "bar.crt"]
|
||||
```
|
||||
|
||||
```yaml tab="File (YAML)"
|
||||
## Static configuration
|
||||
serversTransport:
|
||||
|
@ -292,6 +286,12 @@ serversTransport:
|
|||
- bar.crt
|
||||
```
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
## Static configuration
|
||||
[serversTransport]
|
||||
rootCAs = ["foo.crt", "bar.crt"]
|
||||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
## Static configuration
|
||||
--serversTransport.rootCAs=foo.crt,bar.crt
|
||||
|
@ -303,18 +303,18 @@ _Optional, Default=2_
|
|||
|
||||
If non-zero, `maxIdleConnsPerHost` controls the maximum idle (keep-alive) connections to keep per-host.
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
## Static configuration
|
||||
[serversTransport]
|
||||
maxIdleConnsPerHost = 7
|
||||
```
|
||||
|
||||
```yaml tab="File (YAML)"
|
||||
## Static configuration
|
||||
serversTransport:
|
||||
maxIdleConnsPerHost: 7
|
||||
```
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
## Static configuration
|
||||
[serversTransport]
|
||||
maxIdleConnsPerHost = 7
|
||||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
## Static configuration
|
||||
--serversTransport.maxIdleConnsPerHost=7
|
||||
|
@ -331,12 +331,6 @@ _Optional, Default=30s_
|
|||
`dialTimeout` is the maximum duration allowed for a connection to a backend server to be established.
|
||||
Zero means no timeout.
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
## Static configuration
|
||||
[serversTransport.forwardingTimeouts]
|
||||
dialTimeout = "1s"
|
||||
```
|
||||
|
||||
```yaml tab="File (YAML)"
|
||||
## Static configuration
|
||||
serversTransport:
|
||||
|
@ -344,6 +338,12 @@ serversTransport:
|
|||
dialTimeout: 1s
|
||||
```
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
## Static configuration
|
||||
[serversTransport.forwardingTimeouts]
|
||||
dialTimeout = "1s"
|
||||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
## Static configuration
|
||||
--serversTransport.forwardingTimeouts.dialTimeout=1s
|
||||
|
@ -358,12 +358,6 @@ after fully writing the request (including its body, if any).
|
|||
This time does not include the time to read the response body.
|
||||
Zero means no timeout.
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
## Static configuration
|
||||
[serversTransport.forwardingTimeouts]
|
||||
responseHeaderTimeout = "1s"
|
||||
```
|
||||
|
||||
```yaml tab="File (YAML)"
|
||||
## Static configuration
|
||||
serversTransport:
|
||||
|
@ -371,6 +365,12 @@ serversTransport:
|
|||
responseHeaderTimeout: 1s
|
||||
```
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
## Static configuration
|
||||
[serversTransport.forwardingTimeouts]
|
||||
responseHeaderTimeout = "1s"
|
||||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
## Static configuration
|
||||
--serversTransport.forwardingTimeouts.responseHeaderTimeout=1s
|
||||
|
@ -384,12 +384,6 @@ _Optional, Default=90s_
|
|||
will remain idle before closing itself.
|
||||
Zero means no limit.
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
## Static configuration
|
||||
[serversTransport.forwardingTimeouts]
|
||||
idleConnTimeout = "1s"
|
||||
```
|
||||
|
||||
```yaml tab="File (YAML)"
|
||||
## Static configuration
|
||||
serversTransport:
|
||||
|
@ -397,6 +391,12 @@ serversTransport:
|
|||
idleConnTimeout: 1s
|
||||
```
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
## Static configuration
|
||||
[serversTransport.forwardingTimeouts]
|
||||
idleConnTimeout = "1s"
|
||||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
## Static configuration
|
||||
--serversTransport.forwardingTimeouts.idleConnTimeout=1s
|
||||
|
|
|
@ -13,15 +13,15 @@ Attach labels to your containers and let Traefik do the rest!
|
|||
|
||||
Enabling the docker provider
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
[providers.docker]
|
||||
```
|
||||
|
||||
```yaml tab="File (YAML)"
|
||||
providers:
|
||||
docker: {}
|
||||
```
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
[providers.docker]
|
||||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
--providers.docker=true
|
||||
```
|
||||
|
@ -82,15 +82,6 @@ Attach labels to your containers and let Traefik do the rest!
|
|||
|
||||
Enabling the docker provider (Swarm Mode)
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
[providers.docker]
|
||||
# swarm classic (1.12-)
|
||||
# endpoint = "tcp://127.0.0.1:2375"
|
||||
# docker swarm mode (1.12+)
|
||||
endpoint = "tcp://127.0.0.1:2377"
|
||||
swarmMode = true
|
||||
```
|
||||
|
||||
```yaml tab="File (YAML)"
|
||||
providers:
|
||||
docker:
|
||||
|
@ -101,6 +92,15 @@ Attach labels to your containers and let Traefik do the rest!
|
|||
swarmMode: true
|
||||
```
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
[providers.docker]
|
||||
# swarm classic (1.12-)
|
||||
# endpoint = "tcp://127.0.0.1:2375"
|
||||
# docker swarm mode (1.12+)
|
||||
endpoint = "tcp://127.0.0.1:2377"
|
||||
swarmMode = true
|
||||
```
|
||||
|
||||
```bash tab="CLI"
|
||||
# swarm classic (1.12-)
|
||||
# --providers.docker.endpoint=tcp://127.0.0.1:2375
|
||||
|
@ -266,7 +266,7 @@ you'd add the label `traefik.http.services.<name-of-your-choice>.loadbalancer.pa
|
|||
!!! warning "The character `@` is not authorized in the service name `<service_name>`."
|
||||
|
||||
??? info "`traefik.http.services.<service_name>.loadbalancer.server.port`"
|
||||
|
||||
|
||||
Registers a port.
|
||||
Useful when the container exposes multiples ports.
|
||||
|
||||
|
@ -289,7 +289,7 @@ you'd add the label `traefik.http.services.<name-of-your-choice>.loadbalancer.pa
|
|||
|
||||
Allows to reference a ServersTransport resource that is defined either with the File provider or the Kubernetes CRD one.
|
||||
See [serverstransport](../services/index.md#serverstransport) for more information.
|
||||
|
||||
|
||||
```yaml
|
||||
- "traefik.http.services.<service_name>.loadbalancer.serverstransport=foobar@file"
|
||||
```
|
||||
|
@ -399,9 +399,9 @@ you'd add the label `traefik.http.services.<name-of-your-choice>.loadbalancer.pa
|
|||
```
|
||||
|
||||
??? info "`traefik.http.services.<service_name>.loadbalancer.sticky.cookie.samesite`"
|
||||
|
||||
|
||||
See [sticky sessions](../services/index.md#sticky-sessions) for more information.
|
||||
|
||||
|
||||
```yaml
|
||||
- "traefik.http.services.myservice.loadbalancer.sticky.cookie.samesite=none"
|
||||
```
|
||||
|
|
|
@ -12,7 +12,7 @@ which in turn will create the resulting routers, services, handlers, etc.
|
|||
## Configuration Example
|
||||
|
||||
??? example "Configuring Kubernetes Ingress Controller"
|
||||
|
||||
|
||||
```yaml tab="RBAC"
|
||||
---
|
||||
kind: ClusterRole
|
||||
|
@ -46,7 +46,7 @@ which in turn will create the resulting routers, services, handlers, etc.
|
|||
- ingresses/status
|
||||
verbs:
|
||||
- update
|
||||
|
||||
|
||||
---
|
||||
kind: ClusterRoleBinding
|
||||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
|
@ -61,7 +61,7 @@ which in turn will create the resulting routers, services, handlers, etc.
|
|||
name: traefik-ingress-controller
|
||||
namespace: default
|
||||
```
|
||||
|
||||
|
||||
```yaml tab="Ingress"
|
||||
kind: Ingress
|
||||
apiVersion: networking.k8s.io/v1beta1
|
||||
|
@ -69,7 +69,7 @@ which in turn will create the resulting routers, services, handlers, etc.
|
|||
name: myingress
|
||||
annotations:
|
||||
traefik.ingress.kubernetes.io/router.entrypoints: web
|
||||
|
||||
|
||||
spec:
|
||||
rules:
|
||||
- host: example.com
|
||||
|
@ -90,7 +90,7 @@ which in turn will create the resulting routers, services, handlers, etc.
|
|||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: traefik-ingress-controller
|
||||
|
||||
|
||||
---
|
||||
kind: Deployment
|
||||
apiVersion: apps/v1
|
||||
|
@ -98,7 +98,7 @@ which in turn will create the resulting routers, services, handlers, etc.
|
|||
name: traefik
|
||||
labels:
|
||||
app: traefik
|
||||
|
||||
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
|
@ -119,7 +119,7 @@ which in turn will create the resulting routers, services, handlers, etc.
|
|||
ports:
|
||||
- name: web
|
||||
containerPort: 80
|
||||
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
|
@ -135,7 +135,7 @@ which in turn will create the resulting routers, services, handlers, etc.
|
|||
name: web
|
||||
targetPort: 80
|
||||
```
|
||||
|
||||
|
||||
```yaml tab="Whoami"
|
||||
kind: Deployment
|
||||
apiVersion: apps/v1
|
||||
|
@ -144,7 +144,7 @@ which in turn will create the resulting routers, services, handlers, etc.
|
|||
labels:
|
||||
app: traefiklabs
|
||||
name: whoami
|
||||
|
||||
|
||||
spec:
|
||||
replicas: 2
|
||||
selector:
|
||||
|
@ -162,13 +162,13 @@ which in turn will create the resulting routers, services, handlers, etc.
|
|||
image: traefik/whoami
|
||||
ports:
|
||||
- containerPort: 80
|
||||
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: whoami
|
||||
|
||||
|
||||
spec:
|
||||
ports:
|
||||
- name: http
|
||||
|
@ -210,7 +210,7 @@ which in turn will create the resulting routers, services, handlers, etc.
|
|||
|
||||
Overrides the default router rule type used for a path.
|
||||
Only path-related matcher name can be specified: `Path`, `PathPrefix`.
|
||||
|
||||
|
||||
Default `PathPrefix`
|
||||
|
||||
```yaml
|
||||
|
@ -316,7 +316,7 @@ which in turn will create the resulting routers, services, handlers, etc.
|
|||
```
|
||||
|
||||
## Path Types on Kubernetes 1.18+
|
||||
|
||||
|
||||
If the Kubernetes cluster version is 1.18+,
|
||||
the new `pathType` property can be leveraged to define the rules matchers:
|
||||
|
||||
|
@ -341,14 +341,6 @@ TLS can be enabled through the [HTTP options](../entrypoints.md#tls) of an Entry
|
|||
--entrypoints.websecure.http.tls
|
||||
```
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
# Static configuration
|
||||
[entryPoints.websecure]
|
||||
address = ":443"
|
||||
|
||||
[entryPoints.websecure.http.tls]
|
||||
```
|
||||
|
||||
```yaml tab="File (YAML)"
|
||||
# Static configuration
|
||||
entryPoints:
|
||||
|
@ -358,10 +350,18 @@ entryPoints:
|
|||
tls: {}
|
||||
```
|
||||
|
||||
```toml tab="File (TOML)"
|
||||
# Static configuration
|
||||
[entryPoints.websecure]
|
||||
address = ":443"
|
||||
|
||||
[entryPoints.websecure.http.tls]
|
||||
```
|
||||
|
||||
This way, any Ingress attached to this Entrypoint will have TLS termination by default.
|
||||
|
||||
??? example "Configuring Kubernetes Ingress Controller with TLS on Entrypoint"
|
||||
|
||||
|
||||
```yaml tab="RBAC"
|
||||
---
|
||||
kind: ClusterRole
|
||||
|
@ -395,7 +395,7 @@ This way, any Ingress attached to this Entrypoint will have TLS termination by d
|
|||
- ingresses/status
|
||||
verbs:
|
||||
- update
|
||||
|
||||
|
||||
---
|
||||
kind: ClusterRoleBinding
|
||||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
|
@ -410,7 +410,7 @@ This way, any Ingress attached to this Entrypoint will have TLS termination by d
|
|||
name: traefik-ingress-controller
|
||||
namespace: default
|
||||
```
|
||||
|
||||
|
||||
```yaml tab="Ingress"
|
||||
kind: Ingress
|
||||
apiVersion: networking.k8s.io/v1beta1
|
||||
|
@ -418,7 +418,7 @@ This way, any Ingress attached to this Entrypoint will have TLS termination by d
|
|||
name: myingress
|
||||
annotations:
|
||||
traefik.ingress.kubernetes.io/router.entrypoints: websecure
|
||||
|
||||
|
||||
spec:
|
||||
rules:
|
||||
- host: example.com
|
||||
|
@ -439,7 +439,7 @@ This way, any Ingress attached to this Entrypoint will have TLS termination by d
|
|||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: traefik-ingress-controller
|
||||
|
||||
|
||||
---
|
||||
kind: Deployment
|
||||
apiVersion: apps/v1
|
||||
|
@ -447,7 +447,7 @@ This way, any Ingress attached to this Entrypoint will have TLS termination by d
|
|||
name: traefik
|
||||
labels:
|
||||
app: traefik
|
||||
|
||||
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
|
@ -469,7 +469,7 @@ This way, any Ingress attached to this Entrypoint will have TLS termination by d
|
|||
ports:
|
||||
- name: websecure
|
||||
containerPort: 443
|
||||
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
|
@ -485,7 +485,7 @@ This way, any Ingress attached to this Entrypoint will have TLS termination by d
|
|||
name: websecure
|
||||
targetPort: 443
|
||||
```
|
||||
|
||||
|
||||
```yaml tab="Whoami"
|
||||
kind: Deployment
|
||||
apiVersion: apps/v1
|
||||
|
@ -494,7 +494,7 @@ This way, any Ingress attached to this Entrypoint will have TLS termination by d
|
|||
labels:
|
||||
app: traefiklabs
|
||||
name: whoami
|
||||
|
||||
|
||||
spec:
|
||||
replicas: 2
|
||||
selector:
|
||||
|
@ -512,13 +512,13 @@ This way, any Ingress attached to this Entrypoint will have TLS termination by d
|
|||
image: traefik/whoami
|
||||
ports:
|
||||
- containerPort: 80
|
||||
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: whoami
|
||||
|
||||
|
||||
spec:
|
||||
ports:
|
||||
- name: http
|
||||
|
@ -535,11 +535,11 @@ To enable TLS on the underlying router created from an Ingress, one should confi
|
|||
```yaml
|
||||
traefik.ingress.kubernetes.io/router.tls: "true"
|
||||
```
|
||||
|
||||
|
||||
For more options, please refer to the available [annotations](#on-ingress).
|
||||
|
||||
??? example "Configuring Kubernetes Ingress Controller with TLS"
|
||||
|
||||
|
||||
```yaml tab="RBAC"
|
||||
---
|
||||
kind: ClusterRole
|
||||
|
@ -573,7 +573,7 @@ For more options, please refer to the available [annotations](#on-ingress).
|
|||
- ingresses/status
|
||||
verbs:
|
||||
- update
|
||||
|
||||
|
||||
---
|
||||
kind: ClusterRoleBinding
|
||||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
|
@ -588,7 +588,7 @@ For more options, please refer to the available [annotations](#on-ingress).
|
|||
name: traefik-ingress-controller
|
||||
namespace: default
|
||||
```
|
||||
|
||||
|
||||
```yaml tab="Ingress"
|
||||
kind: Ingress
|
||||
apiVersion: networking.k8s.io/v1beta1
|
||||
|
@ -597,7 +597,7 @@ For more options, please refer to the available [annotations](#on-ingress).
|
|||
annotations:
|
||||
traefik.ingress.kubernetes.io/router.entrypoints: websecure
|
||||
traefik.ingress.kubernetes.io/router.tls: true
|
||||
|
||||
|
||||
spec:
|
||||
rules:
|
||||
- host: example.com
|
||||
|
@ -618,7 +618,7 @@ For more options, please refer to the available [annotations](#on-ingress).
|
|||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: traefik-ingress-controller
|
||||
|
||||
|
||||
---
|
||||
kind: Deployment
|
||||
apiVersion: apps/v1
|
||||
|
@ -626,7 +626,7 @@ For more options, please refer to the available [annotations](#on-ingress).
|
|||
name: traefik
|
||||
labels:
|
||||
app: traefik
|
||||
|
||||
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
|
@ -647,7 +647,7 @@ For more options, please refer to the available [annotations](#on-ingress).
|
|||
ports:
|
||||
- name: websecure
|
||||
containerPort: 443
|
||||
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
|
@ -663,7 +663,7 @@ For more options, please refer to the available [annotations](#on-ingress).
|
|||
name: websecure
|
||||
targetPort: 443
|
||||
```
|
||||
|
||||
|
||||
```yaml tab="Whoami"
|
||||
kind: Deployment
|
||||
apiVersion: apps/v1
|
||||
|
@ -672,7 +672,7 @@ For more options, please refer to the available [annotations](#on-ingress).
|
|||
labels:
|
||||
app: traefiklabs
|
||||
name: whoami
|
||||
|
||||
|
||||
spec:
|
||||
replicas: 2
|
||||
selector:
|
||||
|
@ -690,13 +690,13 @@ For more options, please refer to the available [annotations](#on-ingress).
|
|||
image: traefik/whoami
|
||||
ports:
|
||||
- containerPort: 80
|
||||
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: whoami
|
||||
|
||||
|
||||
spec:
|
||||
ports:
|
||||
- name: http
|
||||
|
@ -709,14 +709,14 @@ For more options, please refer to the available [annotations](#on-ingress).
|
|||
### Certificates Management
|
||||
|
||||
??? example "Using a secret"
|
||||
|
||||
|
||||
```yaml tab="Ingress"
|
||||
kind: Ingress
|
||||
apiVersion: networking.k8s.io/v1beta1
|
||||
metadata:
|
||||
name: foo
|
||||
namespace: production
|
||||
|
||||
|
||||
spec:
|
||||
rules:
|
||||
- host: example.net
|
||||
|
@ -738,7 +738,7 @@ For more options, please refer to the available [annotations](#on-ingress).
|
|||
kind: Secret
|
||||
metadata:
|
||||
name: supersecret
|
||||
|
||||
|
||||
data:
|
||||
tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0=
|
||||
tls.key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCi0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0=
|
||||
|
@ -747,7 +747,7 @@ For more options, please refer to the available [annotations](#on-ingress).
|
|||
TLS certificates can be managed in Secrets objects.
|
||||
|
||||
!!! info
|
||||
|
||||
|
||||
Only TLS certificates provided by users can be stored in Kubernetes Secrets.
|
||||
[Let's Encrypt](../../https/acme.md) certificates cannot be managed in Kubernetes Secrets yet.
|
||||
|
||||
|
@ -767,7 +767,7 @@ If either of those configuration options exist, then the backend communication p
|
|||
and will connect via TLS automatically.
|
||||
|
||||
!!! info
|
||||
|
||||
|
||||
Please note that by enabling TLS communication between traefik and your pods,
|
||||
you will have to have trusted certificates that have the proper trust chain and IP subject name.
|
||||
If this is not an option, you may need to skip TLS certificate verification.
|
||||
|
@ -793,8 +793,8 @@ This ingress follows the Global Default Backend property of ingresses.
|
|||
This will allow users to create a "default router" that will match all unmatched requests.
|
||||
|
||||
!!! info
|
||||
|
||||
|
||||
Due to Traefik's use of priorities, you may have to set this ingress priority lower than other ingresses in your environment,
|
||||
to avoid this global ingress from satisfying requests that could match other ingresses.
|
||||
|
||||
|
||||
To do this, use the `traefik.ingress.kubernetes.io/router.priority` annotation (as seen in [Annotations on Ingress](#on-ingress)) on your ingresses accordingly.
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue