Skip to content

Traefik Headers 中间件文档

Headers(请求/响应头)

Headers 中间件管理请求和响应的头信息。

默认添加的转发头

默认情况下,代理请求时会自动添加以下头:

属性HTTP 头
客户端 IPX-Forwarded-For, X-Real-Ip
主机X-Forwarded-Host
端口X-Forwarded-Port
协议X-Forwarded-Proto
代理服务器的主机名X-Forwarded-Server

配置示例

添加请求头和响应头

下面的示例为代理请求添加 X-Script-Name 头,为响应添加 X-Custom-Response-Header 头。

YAML 格式:

yaml
http:
  middlewares:
    testHeader:
      headers:
        customRequestHeaders:
          X-Script-Name: "test"
        customResponseHeaders:
          X-Custom-Response-Header: "value"

Kubernetes 格式:

yaml
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
  name: test-header
spec:
  headers:
    customRequestHeaders:
      X-Script-Name: "test"
    customResponseHeaders:
      X-Custom-Response-Header: "value"

添加和删除头

下面的示例中,代理请求时会增加 X-Script-Name 头、去除 X-Custom-Request-Header 头;响应会去除 X-Custom-Response-Header 头。

yaml
http:
  middlewares:
    testHeader:
      headers:
        customRequestHeaders:
          X-Script-Name: "test"          # 添加
          X-Custom-Request-Header: ""   # 删除
        customResponseHeaders:
          X-Custom-Response-Header: ""   # 删除

配置选项

customRequestHeaders

字段描述默认值必填
customRequestHeaders要在请求发送到后端服务之前设置/添加/移除的头。键是头名称,值是头值。若要删除头,将值留空。{}

customResponseHeaders

字段描述默认值必填
customResponseHeaders要在响应发送到客户端之前设置/添加/移除的头。{}

安全相关选项

字段描述默认值必填
accessControlAllowCredentials允许凭证(cookie、TLS 客户端证书等)随跨域请求一起发送。更多信息参见 CORSfalse
accessControlAllowHeaders允许的请求头字段名称。[]
accessControlAllowMethods允许的 HTTP 方法。[]
accessControlAllowOrigin允许的来源 URI。可以使用 * 字符。""
accessControlExposeHeaders允许浏览器访问的响应头字段。[]
accessControlMaxAge预检请求的缓存时长。0
addVaryHeader启用 Vary: Origin 头。false
frameDeny移除/添加 X-Frame-Options 头。false
stsSeconds设置 Strict-Transport-Security 头的 max-age 值。0
stsIncludeSubdomainsincludeSubDomains 指令添加到 STS 头。false
stsPreloadpreload 指令添加到 STS 头。false
forceSTSHeader强制添加 STS 头(即使连接是 HTTP)。false
contentTypeNosniff添加 X-Content-Type-Options: nosnifffalse
browserXssFilter添加 X-XSS-Protection: 1; mode=blockfalse
customFrameOptionsValue自定义 X-Frame-Options 头的值。""
contentSecurityPolicy设置 Content-Security-Policy 头。""
contentSecurityPolicyReportOnly设置 Content-Security-Policy-Report-Only 头。false
publicKey启用 HPKP(HTTP 公钥固定)头。""
referrerPolicy设置 Referrer-Policy 头。""
permissionsPolicy设置 Permissions-Policy 头。""
isDevelopment启用开发模式(在生产环境不要使用此选项)。false

SSL 重定向相关

字段描述默认值必填
sslRedirect仅限 308 重定向到 HTTPS。false
sslTemporaryRedirect302 重定向到 HTTPS。false
sslHost重定向到指定主机。""
sslProxyHeaders用于指示请求是否为 HTTPS 的头。{}

在生产环境使用 Traefik OSS?

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

基于 MIT 协议发布