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 客户端证书等)随跨域请求一起发送。更多信息参见 CORS。false否
accessControlAllowHeaders允许的请求头字段名称。[]否
accessControlAllowMethods允许的 HTTP 方法。[]否
accessControlAllowOrigin允许的来源 URI。可以使用 * 字符。""否
accessControlExposeHeaders允许浏览器访问的响应头字段。[]否
accessControlMaxAge预检请求的缓存时长。0否
addVaryHeader启用 Vary: Origin 头。false否
frameDeny移除/添加 X-Frame-Options 头。false否
stsSeconds设置 Strict-Transport-Security 头的 max-age 值。0否
stsIncludeSubdomains将 includeSubDomains 指令添加到 STS 头。false否
stsPreload将 preload 指令添加到 STS 头。false否
forceSTSHeader强制添加 STS 头(即使连接是 HTTP)。false否
contentTypeNosniff添加 X-Content-Type-Options: nosniff。false否
browserXssFilter添加 X-XSS-Protection: 1; mode=block。false否
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 协议发布