NGINX Ingress控制器隐藏Nginx版本

8

我在Kubernetes集群中使用NGINX Ingress Controller,需要隐藏客户端请求的Nginx版本信息。因为Nginx配置文件是动态生成的。最好的方法是如何在nginx.conf文件中包含下面的行?

``` server_tokens off; ```
server_tokens off

感谢SR。

1
你是否已经尝试过nginx.ingress.kubernetes.io/server-snippet: - mdaniel
谢谢,这需要放在HTTP片段部分。 - sfgroups
1个回答

7
如果查看配置文件,你会发现server_tokens可以在nginx.conf中的http, server, location上下文中设置。因此,在nginx入口控制器上,它取决于您想添加该设置的位置(以及如何添加):

当更新配置映射 http-snippet: "server_tokens off;" 时,它会出现重复条目错误。nginx: [emerg] "server_tokens" directive is duplicate in /tmp/nginx-cfg732655361:212 - sfgroups
1
添加 server-tokens: "false" 配置映射确实可以禁用版本号。但在0.17.1镜像中,mod clean仍然无法正常工作。请参考 https://github.com/nginxinc/kubernetes-ingress/issues/226。 - sfgroups
第一个错误可能与在配置文件的其他位置定义有关。您可以通过将其复制到本地进行检查:kubectl cp <nginx-ingress-controller-pod>:nginx.conf . - Rico
3
是的,这就是我看到现有条目的方式。然后找到了 server-tokens: "false" 选项。感谢您的帮助。 - sfgroups
配置地图中 server-tokens 的文档: https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#server-tokens - Seboudry

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接