kubernetes - Kong Ingress Controller - 删除与 Kong 相关的 header

标签 kubernetes kong response-headers kong-ingress

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

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

  • “X-Kong-上游-延迟”
  • “X-Kong-代理-延迟”
  • “通过”
  • “服务器”

  • 我通过应用以下 KongPlugin 资源尝试使用响应转换器插件:
    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
    

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

    我发现了几个与此问题相关的 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。

    最佳答案

    您可以通过 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
    

    关于kubernetes - Kong Ingress Controller - 删除与 Kong 相关的 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61675954/

    相关文章:

    kubernetes - 需要对 Kubernetes pod 进行 ssh

    basic-authentication - KongIngress 对象中的 strip_path 和 preserve_host 属性。他们在做什么?

    nginx - Kong 拒绝将自定义插件识别为已启用

    java - 如何从 HttpURLConnection 的响应 header 获取文件名?

    python - 使用 NGINX 从缓存响应中删除 header

    ios - 用于验证图片下载的 HTTP 响应头内容长度

    kubernetes - 如何在kubernetes中注册新的API扩展?

    docker - 为docker桌面包含的独立k8s服务器集群创建新上下文时如何进行身份验证

    kubernetes - serviceaccount 中不会自动生成可挂载的 key 和 token

    Azure 负载均衡器 IP 覆盖客户端 IP