如何在不使用nginx的情况下启用CORS



我正在尝试使用kubernetes设置RESTFUL API应用程序。我有一个带有群集,静态IP地址的准骨设置,使用裸露的NodePort的裸露服务部署的应用程序以及配置了SSL的托管证书的入口。我需要启用CORS,但尚未使用Nginx。是可能的,还是我需要安装NGINX而不是默认GCE类?

这是我的intress.yaml

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: artsdata-ingress
  annotations:
    kubernetes.io/ingress.global-static-ip-name: "artsdasta-static-ip"
    networking.gke.io/managed-certificates: artsdata-certificate
    ingress.kubernetes.io/enable-cors: "true"
spec:
  backend:
    serviceName: artsdata-kg
    servicePort: 80

检查我正在使用卷曲,如下所示:

curl -H "Access-Control-Request-Method: GET" -H "Origin: http://localhost" --head http://db.artsdata.ca

我期望响应包括访问控制 - *

当前不支持GCP L7负载平衡器中CORS机制,因此Ingress-GCE Ingress Ingress Controller确实包含适当的注释来完成此功能,请在此处找到相关的堆栈线程。

如果您考虑通过NGINX Ingress Controller替换本机GCP Ingress类,以启用交叉原始请求,则可能必须在Origin Ingress资源定义中至少包含两个注释:

kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/enable-cors: "true"

我已经通过GCP社区教程找到了一个很好的指南,该指南解释了GKE中的Nginx Ingress Controller实施过程。

市场上还有其他L7代理框架,可以利用Traefik,Skipper等CORS请求。

相关内容

  • 没有找到相关文章

最新更新