我在 Kubernetes 集群上安装了 Kong,使用 kubernetes-ingress-controller 功能( https://github.com/Kong/kubernetes-ingress-controller )。
我想删除以下 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 问题( 1 、 2 ),但所有这些问题都涉及更新 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/