ServersTransport
ServersTransport 支持配置 Traefik 与 HTTP 服务器之间的传输。
配置示例¶
声明 serversTransport:
http:
serversTransports:
mytransport:
serverName: "myhost"
certificates:
- "/path/to/cert1.pem"
- "/path/to/cert2.pem"
insecureSkipVerify: true
rootCAs:
- "/path/to/rootca1.pem"
- "/path/to/rootca2.pem"
maxIdleConnsPerHost: 100
disableHTTP2: true
peerCertURI: "spiffe://example.org/peer"
forwardingTimeouts:
dialTimeout: "30s"
responseHeaderTimeout: "10s"
idleConnTimeout: "60s"
readIdleTimeout: "5s"
pingTimeout: "15s"
spiffe:
ids:
- "spiffe://example.org/id1"
- "spiffe://example.org/id2"
trustDomain: "example.org"
cipherSuites:
- TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
minVersion: VersionTLS12
maxVersion: VersionTLS12[http.serversTransports.mytransport]
serverName = "myhost"
certificates = ["/path/to/cert1.pem", "/path/to/cert2.pem"]
insecureSkipVerify = true
rootCAs = ["/path/to/rootca1.pem", "/path/to/rootca2.pem"]
maxIdleConnsPerHost = 100
disableHTTP2 = true
peerCertURI = "spiffe://example.org/peer"
cipherSuites = ["TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256","TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384"]
minVersion = "VersionTLS12"
maxVersion = "VersionTLS12"
[http.serversTransports.mytransport.forwardingTimeouts]
dialTimeout = "30s"
responseHeaderTimeout = "10s"
idleConnTimeout = "60s"
readIdleTimeout = "5s"
pingTimeout = "15s"
[http.serversTransports.mytransport.spiffe]
ids = ["spiffe://example.org/id1", "spiffe://example.org/id2"]
trustDomain = "example.org"将 serversTransport 附加到服务:
## Dynamic configuration
http:
services:
Service01:
loadBalancer:
serversTransport: mytransport## Dynamic configuration
[http.services]
[http.services.Service01]
[http.services.Service01.loadBalancer]
serversTransport = "mytransport"labels:
- "traefik.http.services.Service01.loadBalancer.serversTransport=mytransport"{
// ...
"Tags": [
"traefik.http.services.Service01.loadBalancer.serversTransport=mytransport"
]
}配置选项¶
| 字段 | 说明 | 默认值 | 必填 |
|---|---|---|---|
serverName |
配置用于 SNI 的服务器名称。 | "" | 否 |
certificates |
定义将用作 mTLS 客户端证书的证书列表(文件路径或字节数据)。 | [] | 否 |
insecureSkipVerify |
控制是否验证服务器证书链和主机名。 | false | 否 |
rootCAs |
验证服务器证书时使用的根证书颁发机构集合(用于 mTLS 连接)。 | [] | 否 |
cipherSuites |
定义连接后端服务器时使用的密码套件。 | [] | 否 |
minVersion |
定义连接后端服务器时使用的最低 TLS 版本。 | "" | 否 |
maxVersion |
定义连接后端服务器时使用的最高 TLS 版本。 | "" | 否 |
maxIdleConnsPerHost |
为每个主机保留的最大空闲(保活)连接数。为零时,使用 DefaultMaxIdleConnsPerHost(2)。 |
0 | 否 |
disableHTTP2 |
对服务器连接禁用 HTTP/2。 | false | 否 |
peerCertURI |
定义验证服务器证书时与 SAN URI 匹配的 URI。 | "" | 否 |
forwardingTimeouts.dialTimeout |
等待建立服务器连接的时长。 0 = 不设超时 |
30s | 否 |
forwardingTimeouts.responseHeaderTimeout |
完整写入请求(包括请求体,如有)后等待服务器响应头的时长。 0 = 不设超时 |
0s | 否 |
forwardingTimeouts.idleConnTimeout |
空闲(保活)连接在自行关闭前保持空闲的最长时长。 0 = 不设超时 |
90s | 否 |
forwardingTimeouts.readIdleTimeout |
定义 HTTP/2 连接未收到帧时,等待多久后通过 ping 帧执行健康检查。 | 0s | 否 |
forwardingTimeouts.pingTimeout |
定义未收到 ping 响应时,等待多久后关闭 HTTP/2 连接。 | 15s | 否 |
spiffe |
定义 SPIFFE 配置。空的 spiffe 段会启用 SPIFFE(允许任意 SPIFFE ID)。 |
否 | |
spiffe.ids |
定义允许的 SPIFFE ID。 此项优先于 SPIFFE TrustDomain。 |
[] | 否 |
spiffe.trustDomain |
定义 SPIFFE 信任域。 | "" | 否 |