入口点(EntryPoints)¶
打开传入请求的连接

EntryPoints(入口点)是 Traefik 的网络入口点。它们定义了接收请求的端口(HTTP 或者 TCP)。
配置示例¶
仅80端口
## 静态配置
[entryPoints]
[entryPoints.web]
address = ":80"## 静态配置
entryPoints:
web:
address: ":80"## 静态配置
--entryPoints.web.address=:80我们定义一个名为 web 的 entrypoint,在端口 80 上进行监听。
80 & 443 端口
## 静态配置
[entryPoints]
[entryPoints.web]
address = ":80"
[entryPoints.web-secure]
address = ":443"## 静态配置
entryPoints:
web:
address: ":80"
web-secure:
address: ":443"## 静态配置
--entryPoints.web.address=:80
--entryPoints.web-secure.address=:443- 定义了两个
entrypoints:一个叫web,另一个加web-secure。 web监听80端口,web-secure监听443端口。
配置¶
一般配置¶
EntryPoints 是 静态配置 的一部分。我们可以使用一个 toml 文件、CLI 参数或者一个 key-value 存储来定义他们。
可以查看完整的文档来获取可用选项
## 静态配置
[entryPoints]
[entryPoints.name]
address = ":8888"
[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"]## 静态配置
entryPoints:
name:
address: ":8888"
transport:
lifeCycle:
requestAcceptGraceTimeout: 42
graceTimeOut: 42
respondingTimeouts:
readTimeout: 42
writeTimeout: 42
idleTimeout: 42
proxyProtocol:
insecure: true
trustedIPs:
- "127.0.0.1"
- "192.168.0.1"
forwardedHeaders:
insecure: true
trustedIPs:
- "127.0.0.1"
- "192.168.0.1"## 静态配置
--entryPoints.name.address=:8888
--entryPoints.name.transport.lifeCycle.requestAcceptGraceTimeout=42
--entryPoints.name.transport.lifeCycle.graceTimeOut=42
--entryPoints.name.transport.respondingTimeouts.readTimeout=42
--entryPoints.name.transport.respondingTimeouts.writeTimeout=42
--entryPoints.name.transport.respondingTimeouts.idleTimeout=42
--entryPoints.name.proxyProtocol.insecure=true
--entryPoints.name.proxyProtocol.trustedIPs="127.0.0.1,192.168.0.1"
--entryPoints.name.forwardedHeaders.insecure=true
--entryPoints.name.forwardedHeaders.trustedIPs="127.0.0.1,192.168.0.1"转发的 Header¶
你可以将 Traefik 配置为信任转发的 Headers 信息(X-Forwarded-*)。
forwardedHeaders.trustedIPs
信任来着特定 IP 的转发头信息。
## 静态配置
[entryPoints]
[entryPoints.web]
address = ":80"
[entryPoints.web.forwardedHeaders]
trustedIPs = ["127.0.0.1/32", "192.168.1.7"]## 静态配置
entryPoints:
web:
address: ":80"
forwardedHeaders:
trustedIPs:
- "127.0.0.1/32"
- "192.168.1.7"## 静态配置
--entryPoints.web.address=:80
--entryPoints.web.forwardedHeaders.trustedIPs=127.0.0.1/32,192.168.1.7forwardedHeaders.insecure
非安全模式 (实战信任转发的头信息)。
## 静态配置
[entryPoints]
[entryPoints.web]
address = ":80"
[entryPoints.web.forwardedHeaders]
insecure = true## 静态配置
entryPoints:
web:
address: ":80"
forwardedHeaders:
insecure: true## 静态配置
--entryPoints.web.address=:80
--entryPoints.web.forwardedHeaders.insecureTransport¶
respondingTimeouts¶
respondingTimeouts 是对 Traefik 实例的传入请求的超时配置。
transport.respondingTimeouts.readTimeout
可选, 默认=0s
readTimeout 是读取整个请求(包括 body)的最大时间。
如果为0,则不存在超时。
可以使用 time.ParseDuration 支持的格式或者数字进行提供。 如果没有提供单位,则以秒为单位。
## 静态配置
[entryPoints]
[entryPoints.name]
address = ":8888"
[entryPoints.name.transport]
[entryPoints.name.transport.respondingTimeouts]
readTimeout = 42## 静态配置
entryPoints:
name:
address: ":8888"
transport:
respondingTimeouts:
readTimeout: 42## 静态配置
--entryPoints.name.address=:8888
--entryPoints.name.transport.respondingTimeouts.readTimeout=42transport.respondingTimeouts.writeTimeout
可选, 默认=0s
writeTimeout 是写入响应的最大超时间。它包含了读取请求头结束到写入响应结束的时间。如果设置为0,则不存在超时。
可以用 time.PraseDuration 支持的格式或者原始的数字来进行设置。 如果没有提供单位,则以秒为单位解析该值。
## 静态配置
[entryPoints]
[entryPoints.name]
address = ":8888"
[entryPoints.name.transport]
[entryPoints.name.transport.respondingTimeouts]
writeTimeout = 42## 静态配置
entryPoints:
name:
address: ":8888"
transport:
respondingTimeouts:
writeTimeout: 42## 静态配置
--entryPoints.name.address=:8888
--entryPoints.name.transport.respondingTimeouts.writeTimeout=42transport.respondingTimeouts.idleTimeout
可选, 默认 180s
idleTimeout 是空闲(keep-alive)连接在关闭自身之前将保持空闲的最大时间。 如果为0,则不存在超时。
同样可以用 time.PraseDuration 支持的格式或者原始的数字来进行设置。 如果没有提供单位,则以秒为单位解析该值。
## 静态配置
[entryPoints]
[entryPoints.name]
address = ":8888"
[entryPoints.name.transport]
[entryPoints.name.transport.respondingTimeouts]
idleTimeout = 42## 静态配置
entryPoints:
name:
address: ":8888"
transport:
respondingTimeouts:
idleTimeout: 42## 静态配置
--entryPoints.name.address=:8888
--entryPoints.name.transport.respondingTimeouts.idleTimeout=42lifeCycle¶
在关闭阶段空值 Traefik 的行为。
lifeCycle.requestAcceptGraceTimeout
可选, 默认=0s
在启动正常终止之前继续接受请求的持续时间(由graceTimeout选项定义),该选项旨在给下游负载平衡器足够的时间来让 Traefik 停止。
同样可以用 time.PraseDuration 支持的格式或者原始的数字来进行设置。 如果没有提供单位,则以秒为单位解析该值。
零时长将禁用接受宽限期的请求,即 Traefik 将立即进入宽限期。
## 静态配置
[entryPoints]
[entryPoints.name]
address = ":8888"
[entryPoints.name.transport]
[entryPoints.name.transport.lifeCycle]
requestAcceptGraceTimeout = 42## 静态配置
entryPoints:
name:
address: ":8888"
transport:
lifeCycle:
requestAcceptGraceTimeout: 42## 静态配置
--entryPoints.name.address=:8888
--entryPoints.name.transport.lifeCycle.requestAcceptGraceTimeout=42lifeCycle.graceTimeOut
可选, 默认 10s
在 Traefik 停止之前完成请求的持续时间。
同样可以用 time.PraseDuration 支持的格式或者原始的数字来进行设置。 如果没有提供单位,则以秒为单位解析该值。
在该时间范围内,不再接受任何新的请求。
## 静态配置
[entryPoints]
[entryPoints.name]
address = ":8888"
[entryPoints.name.transport]
[entryPoints.name.transport.lifeCycle]
graceTimeOut = 42## 静态配置
entryPoints:
name:
address: ":8888"
transport:
lifeCycle:
graceTimeOut: 42## 静态配置
--entryPoints.name.address=:8888
--entryPoints.name.transport.lifeCycle.graceTimeOut=42代理协议¶
Traefik 支持 ProxyProtocol 版本1和版本2.
如果为入口点启用了代理协议头解析,则该入口点可以接受具有或不具有代理协议头的连接。如果传递了代理协议头,则会自动确定版本。
proxyProtocol.trustedIPs
使用受信任的 IP 启用代理协议。
## 静态配置
[entryPoints]
[entryPoints.web]
address = ":80"
[entryPoints.web.proxyProtocol]
trustedIPs = ["127.0.0.1/32", "192.168.1.7"]## 静态配置
entryPoints:
web:
address: ":80"
proxyProtocol:
trustedIPs:
- "127.0.0.1/32"
- "192.168.1.7"--entryPoints.web.address=:80
--entryPoints.web.proxyProtocol.trustedIPs=127.0.0.1/32,192.168.1.7仅在trustedIPs中的 IP 会导致远程客户端地址被替换:在这里声明负载均衡器 IP 或者 CIDR 范围。
proxyProtocol.insecure
非安全模式 (仅在测试环境)。
在测试环境,可以将 Traefik 配置为信任所有的传入连接,这样做,将替换每个远程客户端地址(trustedIPs 将不会有任何作用)
## 静态配置
[entryPoints]
[entryPoints.web]
address = ":80"
[entryPoints.web.proxyProtocol]
insecure = true## 静态配置
entryPoints:
web:
address: ":80"
proxyProtocol:
insecure: true--entryPoints.web.address=:80
--entryPoints.web.proxyProtocol.insecure在另外的负载均衡器后面使用 Traefik
当在另外一个负载均衡器后面使用 Traefik 时,请确保在两边都配置上代理协议。
否则可能会给你的系统带来安全风险(启用请求伪造)。