ERR_TOO_MANY_REDIRECTS 通过 NGINX 入口控制器用于 Minio
ERR_TOO_MANY_REDIRECTS for Minio via NGINX Ingress Controller
我有一个Minio ClusterIP service running in a Kubernetes cluster. And on top of it, I have a NGINX Ingress Controller。 NGINX Ingress 需要将 Minio 流量转发给 Minio 服务,其他流量转发给它们对应的服务。
我的 Ingress 配置如下所示:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-service
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /app/?(.*)
backend:
serviceName: app-service
servicePort: 3000
- path: /minio/?(.*)
backend:
serviceName: minio-service
servicePort: 9000
部署后,该应用程序运行良好。但是,Minio页面出现问题,抱怨:
This page isn’t working
example.mysite.com redirected you too many times.
Try clearing your cookies.
ERR_TOO_MANY_REDIRECTS
事实上,请求一直在重定向。这是 Chrome DevTools 网络控制台的屏幕截图。
有什么想法吗?
由于 Minio 总是重定向到 /minio/,您需要在路径中保留 /minio
并将其传递给 Minio 服务。
当我将其路径规则更改为 - path: /(minio/.*)
时,它起作用了。现在 Ingress 配置如下所示:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-service
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /app/?(.*)
backend:
serviceName: app-service
servicePort: 3000
- path: /(minio/.*)
backend:
serviceName: minio-service
servicePort: 9000
而且我已经在浏览器中运行了 Minio 服务:
希望对您有所帮助。
我有一个Minio ClusterIP service running in a Kubernetes cluster. And on top of it, I have a NGINX Ingress Controller。 NGINX Ingress 需要将 Minio 流量转发给 Minio 服务,其他流量转发给它们对应的服务。
我的 Ingress 配置如下所示:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-service
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /app/?(.*)
backend:
serviceName: app-service
servicePort: 3000
- path: /minio/?(.*)
backend:
serviceName: minio-service
servicePort: 9000
部署后,该应用程序运行良好。但是,Minio页面出现问题,抱怨:
This page isn’t working
example.mysite.com redirected you too many times.
Try clearing your cookies.
ERR_TOO_MANY_REDIRECTS
事实上,请求一直在重定向。这是 Chrome DevTools 网络控制台的屏幕截图。
有什么想法吗?
由于 Minio 总是重定向到 /minio/,您需要在路径中保留 /minio
并将其传递给 Minio 服务。
当我将其路径规则更改为 - path: /(minio/.*)
时,它起作用了。现在 Ingress 配置如下所示:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-service
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /app/?(.*)
backend:
serviceName: app-service
servicePort: 3000
- path: /(minio/.*)
backend:
serviceName: minio-service
servicePort: 9000
而且我已经在浏览器中运行了 Minio 服务:
希望对您有所帮助。