À propos de la configuration inter-domaines d'Ingress-nginx

Si les services sous k8 doivent être accessibles par des systèmes externes, ils doivent être configurés pour autoriser l'accès entre domaines.

Lorsque vous effectuez une recherche sur Baidu, vous constaterez que de nombreuses introductions citent le contenu suivant :

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: MyServicesApp
  labels:
    app: MyServicesApp
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /MyServicesApp/$1
    nginx.ingress.kubernetes.io/enable-cors: "true"
    nginx.ingress.kubernetes.io/cors-allow-credentials: 'false'
    nginx.ingress.kubernetes.io/cors-allow-headers: *
    nginx.ingress.kubernetes.io/cors-allow-methods: GET, PUT, POST, DELETE, PATCH, OPTIONS
    nginx.ingress.kubernetes.io/cors-allow-origin: http://*.xxx.com  # 注意(s)与*不要通用,例如:http(s)://*.xxx.com 不支持 
    nginx.ingress.kubernetes.io/cors-expose-headers: '*'  # 默认为空
    nginx.ingress.kubernetes.io/cors-max-age: '600'
spec:
  rules:
    - host: xxx.xxx.com
      http:
        paths:
          - path: /MyServicesApp/(.*)
            pathType: ImplementationSpecific
            backend:
              service:
                name: MyServicesApp-svc
                port:
                  number: 8080

Quelqu'un ici a signalé que le cross-domain ne prend pas effet. Après avoir résolu le problème, j'ai découvert que dans l'élément de configuration cros-allow-headers, * ne signifie pas tous, mais tous les en-têtes de base. Si un en-tête personnalisé est utilisé, tel qu'un jeton xxx personnalisé, il doit être La déclaration est affiché ici, sinon il sera intercepté.

Il est donc recommandé de le remplacer par :

nginx.ingress.kubernetes.io/cors-allow-headers:APP-ID,content-type,LCDP-CSRF-TOKEN,LCDP-SIGNATURE,Referer,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization

La déclaration complète nécessite des en-têtes inter-domaines, ce qui peut essentiellement résoudre le problème.

Supongo que te gusta

Origin blog.csdn.net/lanwilliam/article/details/132595428
Recomendado
Clasificación