k8s ingress-nginx 使用 snippet 添加自定义配置(ngx_headers_more)

网友投稿 505 2022-09-12

k8s ingress-nginx 使用 snippet 添加自定义配置(ngx_headers_more)

K8S 中使用 ingress-nginx,为我们提供了很大的方便,我们不需要自己手工维护 nginx,只需要配置相应的 ingress 规则,就可以直接生效到 nginx-controller 中。 但是凡事都是相对了,简单的另一面就是灵活性降低,我们不再能像维护自己安装的nginx 一样随心所欲的修改配置文件。比如在有些时候我们需要在 server 里或者 location 里添加一些参数,例如添加包体大小限制、添加跨域配置、添加自定义header、处理响应header等等。遇到这些需求的时候,我们开始怀念原生的 nginx 配置,因为那样我们可以随心所欲的修改。 我们有这样的需求,官方在做这个的时候,也做了一些考虑,为了我们提供了一些配置切入点,我们可以通过配置 annotation,按照官方提供的一些规则来将我们的一些自定义配置插入进去。 本文列出两种切入点示例: nginx.ingress.kubernetes.io/configuration-snippet (用于插入 location 块代码段) nginx.ingress.kubernetes.io/server-snippet (用于插入 server 块中的代码段) 1、更多关于 nginx.ingress.kubernetes.io 的使用,详见文章底部的官方文档。 2、要注意官方文档中开篇的一句话:!!! note The annotation prefix can be changed using the --annotations-prefix command line argument, but the default is nginx.ingress.kubernetes.io, as described in the table below. 使用示例: kind: Ingress metadata: annotations: nginx.ingress.kubernetes.io/server-snippet: |- add_header Shy-Test 888; more_set_headers 'Shy-Hello: hello' 'Demo: demo'; labels: cattle.io/creator: norman name: website-muses-docs namespace: muses-docs // 省略更多配置 如上示例就是在 nginx 的 server 块中添加两行代码。add_header Shy-Test 888; 就是给响应头添加一个header。more_set_headers 'Shy-Test: 666' 'Demo: demo'; 也是给响应头设置多个 header,与 add_header 不同的是,这个会覆盖,add 是追加。nginx-ingress-controller 已经为我们内置了 ngx_headers_more 模块,这是一个可以更灵活操作 header 的 module。nginx.ingress.kubernetes.io/configuration-snippet 的使用方法和 server 的一样。 想了解更多 annotation 配置,详见官方文档:https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/annotations.mdhttps://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/ (END)

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:弗格战旧主不手软,郭艾伦复出进攻效率低!
下一篇:k8s云原生的持久化存储PV & PVC
相关文章

 发表评论

暂时没有评论,来抢沙发吧~