Skip to content

Traefik ServersTransport 文档

ServersTransport

ServersTransport 允许你配置 Traefik 与 HTTP 后端服务器之间的传输参数。

配置示例

声明 serversTransport

YAML 格式:

yaml
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"

将 serversTransport 附加到服务

YAML 格式:

yaml
http:
  services:
    service1:
      loadBalancer:
        serversTransport: "mytransport"
        servers:
          - url: "http://private-ip-server-1/"
          - url: "http://private-ip-server-2/"

Kubernetes 格式:

yaml
apiVersion: traefik.io/v1alpha1
kind: ServersTransport
metadata:
  name: mytransport
  namespace: default
spec:
  serverName: "myhost"
  insecureSkipVerify: true
  forwardingTimeouts:
    dialTimeout: "30s"
    responseHeaderTimeout: "10s"
    idleConnTimeout: "60s"
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
  name: myroute
  namespace: default
spec:
  entryPoints:
    - web
  routes:
    - match: Host(`example.com`)
      kind: Rule
      services:
        - name: myservice
          port: 80
  tls:
    options:
      name: mytlsoption
      namespace: default

配置选项

字段描述默认值必填
serverName验证后端 TLS 证书时使用的主机名。后端的 hostname
certificates用于 mTLS 客户端认证的客户端证书列表。-
insecureSkipVerify跳过对后端证书的验证。false
rootcas用于验证后端证书的根 CA 证书列表。-
maxIdleConnsPerHost每个主机的最大空闲连接数。200
disableHTTP2禁用 HTTP/2。false
peerCertURI期望对等方证书中的 SPIFFE URI。-
spiffeSPIFFE 身份验证配置。-
spiffe.ids允许的 SPIFFE ID 列表。-
spiffe.trustDomain信任域。-
cipherSuites允许的 TLS 密码套件列表。-
minVersion最小 TLS 版本。-
maxVersion最大 TLS 版本。-
forwardingTimeouts转发超时配置。-
forwardingTimeouts.dialTimeout建立连接的超时。30s
forwardingTimeouts.responseHeaderTimeout等待响应头的超时。0(无超时)
forwardingTimeouts.idleConnTimeout空闲连接超时。90s
forwardingTimeouts.readIdleTimeout读取空闲超时(HTTP/2)。0
forwardingTimeouts.pingTimeoutPing 超时(HTTP/2)。15s

适用场景

  • mTLS 客户端认证:与需要客户端证书的后端通信
  • 自签名证书:跳过证书验证(仅限开发环境)
  • SPIFFE 身份验证:使用 SPIFFE ID 验证后端身份
  • 特定 TLS 配置:为后端连接使用特定的 TLS 版本和密码套件

在生产环境使用 Traefik OSS?

如果你在工作中使用 Traefik,可以考虑为其添加企业级 API 网关能力或获取 Traefik OSS 的商业支持。

基于 MIT 协议发布