跳到正文
Træfɪk

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 信任域。 "" 否

版权所有 © 头文件软件工作室

文档由 HeadFile Studio 翻译。

Traefik v3.7 中文快照 · 原文版权归 Traefik Labs 及贡献者所有 · MIT 许可证