首页 > 解决方案 > nginx入口中的cor域白名单

问题描述

我正在尝试向 Kubernetes Nginx-ingress 添加域白名单,因此它允许多个域来源。我尝试过这样的事情:

nginx.ingress.kubernetes.io/configuration-snippet: |
  set $cors '';
  if ($http_origin ~ '^https?://(localhost:4000|www\.example.com\.com)$') {
    set $cors 'true';
  }

  # The above is used only if map is not used
  # --------------------------------------------------

  if ($cors = 'true') {
    more_set_headers 'Access-Control-Allow-Origin' "$http_origin" always;
    more_set_headers 'Access-Control-Allow-Credentials' 'true' always;
    more_set_headers 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS' always;
    more_set_headers 'Access-Control-Allow-Headers' 'Accept,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Requested-With' always;
    # required to be able to read Authorization header in frontend
    #more_set_headers 'Access-Control-Expose-Headers' 'Authorization' always;
  }

  if ($request_method = 'OPTIONS') {
    # Tell client that this pre-flight info is valid for 20 days
    more_set_headers 'Access-Control-Max-Age' 1728000;
    more_set_headers 'Content-Type' 'text/plain charset=UTF-8';
    more_set_headers 'Content-Length' 0;
    return 204;
  }

但我得到一个 net::ERR_HTTP2_PROTOCOL_ERROR,这是处理这个错误的方法吗?

标签: nginxkubernetesnginx-ingress

解决方案


推荐阅读