天天看點

Kong移除系統響應頭的資訊

Kong移除系統響應頭的資訊

      • 背景
      • 方案
        • 正确移除 Kong 系統響應頭
      • 總結

背景

在調用 Kong Gateway 的服務時,預設的響應頭會包含以下資訊,我們目前想把

X-Kong-Upstream-Latency

X-Kong-Proxy-Latency

Via

這三個響應頭給隐藏掉,不想暴露給調用方。

HTTP/1.1 200 OK
Server: openresty
Date: Mon, 25 Jul 2022 01:26:32 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 14
Connection: keep-alive
Last-Modified: Thu, 09 Dec 2021 10:05:58 GMT
ETag: "61b1d506-e"
X-Kong-Upstream-Latency: 26
X-Kong-Proxy-Latency: 2
Via: kong/2.5.0
           

方案

首先想到的是使用 Kong Gateway 自帶的插件,即

Transformations

下面的

Response Transformer

插件,該插件用于替換、删除、添加響應頭的辨別。

由于我們使用的是開源的 Konga 界面。直接點選 Plugins --> Transformations --> Response Transformer 即可。

但發現在 remove headers 當中,填入

X-Kong-Upstream-Latency

X-Kong-Proxy-Latency

Via

不會生效,但其他的值是生效的,故此方案針對這幾個系統響應頭不生效。

正确移除 Kong 系統響應頭

通過搜尋 Kong 官方 GitHub 的 issue,發現了解決方案。

Kong GitHub issue

即修改

/etc/kong/kong.conf

檔案,将 headers 的值改為 off 即可

#headers = server_tokens, latency_tokens
headers = off
           

這裡我們使用的是 Docker Swarm 的方式部署 Kong Gateway 以及 Konga,隻需要更改本地挂載的配置檔案即可。

volumes:
      - /opt/kong-valumes/conf/kong.conf:/etc/kong/kong.conf
           

重新開機服務,再次調用,發現

X-Kong-Upstream-Latency

X-Kong-Proxy-Latency

Via

的響應頭已被移除。

總結

Response Transformer

插件對于幾個 Kong Gateway 系統的響應頭是無法生效的,若要移除

X-Kong-Upstream-Latency

X-Kong-Proxy-Latency

Via

的響應頭資訊,需更改

kong.conf

檔案。