想添加一点自定义的配置,用于禁止访问一些页面
annotations:
nginx.ingress.kubernetes.io/server-snippet: |
if ($request_uri ~* "/index\.html$") {
return 403;
}
报错提示
admission webhook "validate.nginx.ingress.kubernetes.io" denied the request: nginx.ingress.kubernetes.io/server-snippet annotation cannot be used. Snippet directives
are disabled by the Ingress administrator
最后查到资料
snippet注解默认禁用
影响版本:v1.9.3-aliyun.1以下(不包括v1.9.3-aliyun.1)。
由于安全原因,自v1.9.3-aliyun.1版本起,Nginx Ingress Controller将默认禁用所有snippet注解,可能包括:
nginx.ingress.kubernetes.io/configuration-snippet
nginx.ingress.kubernetes.io/server-snippet
nginx.ingress.kubernetes.io/stream-snippet
nginx.ingress.kubernetes.io/auth-snippet
nginx.ingress.kubernetes.io/modsecurity-snippet
出于安全和稳定性风险的考虑,建议您优先使用相关注解或者设置项来实现所需功能。
如您仍需要使用snippet注解能力,请在充分评估风险后,通过在ConfigMap
kube-system/nginx-configuration
中添加allow-snippet-annotations: "true"
手动开启注解功能。
在 kube-system/nginx-configuration
中添加allow-snippet-annotations: "true" 搞定