[英]Kubernetes - 'ERR_TOO_MANY_REDIRECTS' error
I am using ingress-nginx for my kubernetes cluster with AWS tls certificate.我正在使用带有 AWS tls 证书的 kubernetes 集群使用 ingress-nginx。
Both the frontend and backend services are running inside the cluster.前端和后端服务都在集群内运行。
I am able to view the frontend but when it interacts with backend it throws the error:我可以查看前端,但是当它与后端交互时会引发错误:
ERR_TOO_MANY_REDIRECTS
Ingress nginx
入口 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
Ingress nginx service
入口 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
I am stuck here and unable to take this to production, thanks in advance!我被困在这里,无法将其投入生产,在此先感谢!
Which URL did you define in backend?您在后端定义了哪个 URL ? if it's www.example.com , then remove
- example.com
line.如果是www.example.com ,则删除
- example.com
行。
I think you should remove aline in this:我认为您应该在此删除 aline:
spec:
tls:
- hosts:
- example.com
- www.example.com
Remove: - example.com
then check again.删除:
- example.com
然后再次检查。
OR you keep both hosts: but reconfigure this: nginx.ingress.kubernetes.io/from-to-www-redirect: "false"
或者您保留两个主机:但重新配置:
nginx.ingress.kubernetes.io/from-to-www-redirect: "false"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.