这个问题通常是由于在头信息中缺少Authorization头而导致的。为了解决这个问题,您需要在Ingress中添加一个Annotation,以确保Authorization头可传递到后端服务。
在您的Ingress资源文件中添加以下Annotation:
nginx.ingress.kubernetes.io/configuration-snippet: |
proxy_set_header Authorization $http_authorization;
这个Annotation的作用是向nginx配置文件中注入一个snippet。它将检查HTTP请求的'Authorization”标头,并将其传递到后端服务。
示例Ingress资源文件:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: my-ingress
annotations:
nginx.ingress.kubernetes.io/configuration-snippet: |
proxy_set_header Authorization $http_authorization;
spec:
rules:
- host: my-app.com
http:
paths:
- path: /
backend:
serviceName: my-service
servicePort: 80