【问题标题】:Kong Ingress Controller - Remove Kong related headersKong Ingress Controller - 删除 Kong 相关的标头
【发布时间】:2020-08-23 19:42:53
【问题描述】:

我在 Kubernetes 集群上使用 kubernetes-ingress-controller 功能 (https://github.com/Kong/kubernetes-ingress-controller) 安装了 Kong。

我想删除以下 Kong 的相关标头:

  • “X-Kong-Upstream-Latency”
  • “X-Kong-代理延迟”
  • “通过”
  • “服务器”

我尝试通过应用以下 KongPlugin 资源来使用 response-transformer 插件:

apiVersion: configuration.konghq.com/v1
kind: KongPlugin
metadata:
  name: kong-response-transformer
config:
  remove:
    headers:
    - "X-Kong-Upstream-Latency"
    - "X-Kong-Proxy-Latency"
    - "Via"
    - "Server"
plugin: response-transformer

但只有“服务器”标头从响应中删除。有没有办法通过使用一些自定义资源以“kubernetes-ingress-controller”的方式从响应中删除此类标头?

我发现了几个与此问题相关的 GitHub 问题(12),但它们都提到了更新 Kong 配置文件(/etc/kong/kong.yml)的可能性,我真的不知道不知道如何在我的 Kubernetes 环境中应用这些更改。将以下行传递给 ConfigMap 并不能解决问题:

# Add additional response headers
header_filter_by_lua_block {
    kong.header_filter()
    ngx.header["Server"] = nil
    ngx.header["Via"] = nil
    ngx.header["X-Kong-Proxy-Latency"] = nil
    ngx.header["X-Kong-Upstream-Latency"] = nil
}

对此有任何帮助吗? 谢谢...

编辑:Kong 版本是 2.0.3,kong-ingress-controller 版本是 0.8.1。

【问题讨论】:

    标签: kubernetes kong response-headers kong-ingress


    【解决方案1】:

    您可以通过headers 配置属性禁用这些标头。同一页面上还指出,配置属性也可以指定为environment variables

    因此,您可以更新您的部署以将 headers = off 属性指定为环境变量。类似于:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: ingress-kong
      namespace: kong
    spec:
      template:
        spec:
          containers:
            name: proxy
            image: kong:2.0.3
            env:
            - name: KONG_HEADERS
              value: off
    

    【讨论】:

      【解决方案2】:

      我遇到了确切的问题,并在找到此线程后修复了它。 由于我是直接构建 kong 的 Docker 映像,因此我在 Docker 文件中添加了以下步骤以注入环境变量

      ENV KONG_HEADERS='off'
      

      【讨论】:

        【解决方案3】:

        @thibaultcha 是对的。 看着https://github.com/Kong/kong/blob/9f2b1d984057336cc6075c287ec38ad59323fe6e/kong.conf.default#L656 我们可以看到标题的定义。 headers 环境改为KONG_HEADERS

        使用 Helm 时需要做的就是将带有“off”的标题添加到 values.yaml 文件中

        env:
          headers: 'off'
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-01-16
          • 2021-11-08
          • 1970-01-01
          • 1970-01-01
          • 2019-07-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多