【问题标题】:Kubernetes - 'ERR_TOO_MANY_REDIRECTS' errorKubernetes - “ERR_TOO_MANY_REDIRECTS”错误
【发布时间】:2021-01-26 00:02:55
【问题描述】:

我正在使用带有 AWS tls 证书的 kubernetes 集群使用 ingress-nginx。

frontendbackend 服务都在集群内运行。

能够查看前端,但是当它与后端交互时会抛出错误:

ERR_TOO_MANY_REDIRECTS

入口 nginx

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: ingress-service
  annotations:
    nginx.ingress.kubernetes.io/default-backend: ingress-nginx-controller
    nginx.ingress.kubernetes.io/use-regex: "true"
    nginx.ingress.kubernetes.io/configuration-snippet: |
      add_header Access-Control-Allow-Methods "POST, GET, OPTIONS";
      add_header Access-Control-Allow-Credentials true;
    nginx.ingress.kubernetes.io/enable-cors: "true"
    nginx.ingress.kubernetes.io/cors-allow-methods: "PUT, GET, POST, OPTIONS"
    nginx.ingress.kubernetes.io/from-to-www-redirect: "true"
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
spec:
  tls:
  - hosts:
      - example.com
      - www.example.com
  rules:
    - host: www.example.com
      http:
        paths:
          - path: /api/upload/?(.*)
            backend:
              serviceName: aws-srv
              servicePort: 3000

入口 nginx 服务

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-type: nlb
    service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "https"
    service.beta.kubernetes.io/aws-load-balancer-proxy-protocol: "*"
    service.beta.kubernetes.io/aws-load-balancer-ssl-cert: "arn:aws:acm:ap-south-1XXXXX"
    service.beta.kubernetes.io/aws-load-balancer-backend-protocol: "http"
  labels:
    helm.sh/chart: ingress-nginx-2.11.1
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/version: 0.34.1
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: controller
  name: ingress-nginx-controller
  namespace: ingress-nginx
spec:
  type: LoadBalancer
  externalTrafficPolicy: Local
  ports:
    - name: http
      port: 80
      protocol: TCP
      targetPort: http
    - name: https
      port: 443
      protocol: TCP
      targetPort: http
  selector:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/component: controller

我被困在这里,无法将其投入生产,提前致谢!

【问题讨论】:

  • 您是否也在这张图片中使用 AWS API Gateway,就像入口之前的任何地方一样?

标签: node.js docker nginx kubernetes kubernetes-ingress


【解决方案1】:

您在后端定义了哪个 URL?如果是www.example.com,则删除- example.com 这一行。

我认为您应该在此删除 aline:

spec:
  tls:
  - hosts:
      - example.com
      - www.example.com

删除:- example.com 然后再次检查。

或者你保留两个主机: 但重新配置:nginx.ingress.kubernetes.io/from-to-www-redirect: "false"

【讨论】:

    猜你喜欢
    • 2018-02-15
    • 1970-01-01
    • 1970-01-01
    • 2012-05-19
    • 2020-08-04
    • 1970-01-01
    • 2014-08-19
    • 2021-08-24
    相关资源
    最近更新 更多