【问题标题】:map directive not read properly nginx ingress controller kubernetesmap 指令未正确读取 nginx 入口控制器 kubernetes
【发布时间】:2019-07-08 20:01:33
【问题描述】:

这是 ConfigMap 资源:

kind: ConfigMap
apiVersion: v1
metadata:
  name: nginx-configuration
  namespace: ingress-nginx
  labels:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
data:
  use-proxy-protocol: "false"
  use-forwarded-headers: "true"
  proxy-real-ip-cidr: "0.0.0.0/0" # restrict this to the IP addresses of ELB
  http-snippet: "map $http_origin $cors {
          hostnames;

          default       'default.com';
          .local        $http_origin;
          .blah.org $http_origin;
      }"

然后我得到了以下 Ingress 资源,它正在读取我之前在 ConfigMap nginx.ingress.kubernetes.io/cors-allow-origin: "$cors" 上设置的 map 指令中的值:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: my-ingress
  namespace: "default"
  annotations:
    kubernetes.io/ingress.class: "nginx"
    nginx.ingress.kubernetes.io/use-regex: "true"
    nginx.ingress.kubernetes.io/enable-cors: "true"
    nginx.ingress.kubernetes.io/cors-allow-origin: "$cors"
    nginx.ingress.kubernetes.io/cors-allow-credentials: "true"
    nginx.ingress.kubernetes.io/cors-allow-methods: "GET, HEAD, OPTIONS"
    nginx.ingress.kubernetes.io/cors-allow-headers: "Accept,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Requested-With"
    .
    .
    .

我遇到的问题是注释没有正确读取 map 指令上设置的 $cors 变量,并且生成的 nginx.conf 文件总是设置“add_header 'Access-Control-Allow-Origin' 响应头到“*”。

我这里有什么遗漏吗?

【问题讨论】:

    标签: dictionary nginx kubernetes controller


    【解决方案1】:

    这是 nginx.ingress.kubernetes.io/cors-allow-origin 注解中 CORS 实现的众所周知的行为,仅限于单个值(具有硬编码格式)或 *,查看 Nginx Ingress 控制器 documentation

    nginx.ingress.kubernetes.io/cors-allow-origin 控制什么是 接受 CORS 的来源。这是一个单一的字段值,与 以下格式:http(s)://origin-site.com 或 http(s)://origin-site.com:port

    因此,为了在 origin 标头中支持多个域,我假设您可能会考虑注入一些可以完成工作的脚本。有一个专门的 FR 提出了#1171,@claudiuchis 提供了一个 sn-p 来完成它。

    【讨论】:

      猜你喜欢
      • 2018-03-25
      • 2018-10-29
      • 2020-04-09
      • 2020-12-05
      • 2020-04-24
      • 2022-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多