簡體   English   中英

Kong Ingress Controller - 刪除 Kong 相關標頭

[英]Kong Ingress Controller - Remove Kong related headers

我使用 kubernetes-ingress-controller 功能( https://github.com/Kong/kubernetes-ingress-controller )在 Kubernetes 集群上安裝了 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

但只有“服務器”header 從響應中刪除。 有沒有辦法通過使用一些自定義資源以“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。

您可以通過headers配置屬性禁用這些標頭。 同一頁上還指出,配置屬性也可以指定為環境變量

因此,您可以更新您的部署以將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

我遇到了確切的問題並在找到此線程后修復了它。 由於我正在直接構建 kong 的 Docker 映像,因此我在 Docker 文件中添加了以下步驟以注入環境變量

ENV KONG_HEADERS='off'

@thibaultcha 是對的。 查看https://github.com/Kong/kong/blob/9f2b1d984057336cc6075c287ec38ad59323fe6e/kong.conf.default#L656我們可以看到headers的定義。 headers 環境更改為KONG_HEADERS

使用 Helm 時需要做的就是添加到 values.yaml 文件中帶有“off”的標題

env:
  headers: 'off'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM