Traefik TCP ServersTransport 文档
ServersTransport(TCP)
TCP ServersTransport 允许你配置 Traefik 与 TCP 后端服务器之间的传输参数。
配置示例
YAML 格式:
yaml
tcp:
serversTransports:
mytransport:
dialTimeout: "30s"
dialKeepAlive: "20s"
terminationDelay: "200ms"
tls:
serverName: "example.com"
certificates:
- "/path/to/cert1.pem"
- "/path/to/cert2.pem"
insecureSkipVerify: true
rootcas:
- "/path/to/rootca.pem"
peerCertURI: "spiffe://example.org/peer"
spiffe:
ids:
- "spiffe://example.org/id1"
- "spiffe://example.org/id2"
trustDomain: "example.org"TOML 格式:
toml
[tcp.serversTransports.mytransport]
dialTimeout = "30s"
dialKeepAlive = "20s"
terminationDelay = "200ms"
[tcp.serversTransports.mytransport.tls]
serverName = "example.com"
certificates = ["/path/to/cert1.pem", "/path/to/cert2.pem"]
insecureSkipVerify = true
rootcas = ["/path/to/rootca.pem"]
peerCertURI = "spiffe://example.org/peer"
[tcp.serversTransports.mytransport.spiffe]
ids = ["spiffe://example.org/id1", "spiffe://example.org/id2"]
trustDomain = "example.org"配置选项
| 字段 | 描述 | 默认值 | 必填 |
|---|---|---|---|
dialTimeout | 建立连接的超时时间。 | 30s | 否 |
dialKeepAlive | TCP keep-alive 间隔。 | 15s | 否 |
terminationDelay | 在连接关闭前的等待时间。 | 0 | 否 |
tls.serverName | 验证后端 TLS 证书的主机名。 | - | 否 |
tls.certificates | 用于 mTLS 客户端认证的证书列表。 | - | 否 |
tls.insecureSkipVerify | 跳过证书验证。 | false | 否 |
tls.rootcas | 根 CA 证书。 | - | 否 |
tls.peerCertURI | 期望对等方证书中的 SPIFFE URI。 | - | 否 |
spiffe.ids | 允许的 SPIFFE ID 列表。 | - | 否 |
spiffe.trustDomain | 信任域。 | - | 否 |
将 serversTransport 附加到服务
yaml
tcp:
services:
my-service:
loadBalancer:
serversTransport: "mytransport"
servers:
- address: "10.0.0.10:4000"
- address: "10.0.0.11:4000"适用场景
- 数据库连接:安全地连接到启用 TLS 的数据库
- mTLS:使用客户端证书验证自身
- SPIFFE 身份:验证后端服务的身份
- 特定 TCP 选项:调整 TCP keep-alive、超时
在生产环境使用 Traefik OSS?
如果你在工作中使用 Traefik,可以考虑为其添加企业级 API 网关能力或获取 Traefik OSS 的商业支持。