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
檔案。