【问题标题】:ERR_TOO_MANY_REDIRECTS for Minio via NGINX Ingress Controller通过 NGINX 入口控制器的 Minio 的 ERR_TOO_MANY_REDIRECTS
【发布时间】:2019-11-29 13:31:07
【问题描述】:

我有一个在 Kubernetes 集群中运行的 Minio ClusterIP 服务。最重要的是,我有一个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: /$1
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 的网络控制台的屏幕截图。

有什么想法吗?

【问题讨论】:

    标签: kubernetes nginx-ingress minio


    【解决方案1】:

    由于 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: /$1
    spec:
      rules:
        - http:
            paths:
              - path: /app/?(.*)
                backend:
                  serviceName: app-service
                  servicePort: 3000
              - path: /(minio/.*)
                backend:
                  serviceName: minio-service
                  servicePort: 9000
    

    我已经让 Minio 服务在浏览器中运行:

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-28
      • 1970-01-01
      • 2017-12-06
      • 2020-05-06
      • 2019-03-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多