0
点赞
收藏
分享

微信扫一扫

k8s ingress-nginx 使用 snippet 添加自定义配置(例如:安全头)

比如在有些时候我们需要在 server 里或者 location 里添加一些参数,例如添加安全头、包体大小限制、添加跨域配置、添加自定义header、处理响应header等等。遇到这些需求的时候,我们开始怀念原生的 nginx 配置,因为那样我们可以随心所欲的修改。

我们有这样的需求,官方在做这个的时候,也做了一些考虑,为了我们提供了一些配置切入点,我们可以通过配置 annotation,按照官方提供的一些规则来将我们的一些自定义配置插入进去。

官方文档地址:注释 - NGINX 入口控制器 (kubernetes.github.io)

本文列出两种切入点示例:

  • nginx.ingress.kubernetes.io/configuration-snippet (用于插入 location 块代码段)
  • nginx.ingress.kubernetes.io/server-snippet (用于插入 server 块中的代码段)

安全头使用示例:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/configuration-snippet: >
      more_set_headers 'X-Content-Type-Options: nosniff' 'X-Frame-Options:
      SAMEORIGIN' "X-XSS-Protection : 1 mode=block ";
  name: default-ingress
  namespace: default
  //省略其他配置

官网实例:

configuration-snippet

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/configuration-snippet: |
        more_set_headers "Request-Id: $req_id";

server-snippet

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/server-snippet: |
        set $agentflag 0;

参阅:https://devpress.csdn.net/k8s/62f99feec6770329307ff078.html

举报

相关推荐

0 条评论