kubernetes - 具有 302 重定向循环的 Kubernetes Ingress
问题描述
我有一个具有两条路径的角色入口:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
metadata:
name: myservice-production
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/proxy-connect-timeout: "30"
nginx.ingress.kubernetes.io/proxy-read-timeout: "1800"
nginx.ingress.kubernetes.io/proxy-send-timeout: "1800"
cert-manager.io/cluster-issuer: letsencrypt-prod
acme.cert-manager.io/http01-edit-in-place: "true"
spec:
rules:
- host: ra2.myservice.com.br
http:
paths:
- path: /
backend:
serviceName: myservice-production-deployment-nodeport
servicePort: 80
- path: /conteudo/
backend:
serviceName: seo-production-deployment-nodeport
servicePort: 80
tls:
- hosts:
- ra2.myservice.com.br
secretName: ra-production-us2-certmanager-certificate
SEO部署是正确的:
种类:服务 apiVersion:v1 元数据:名称:seo-production-deployment-nodeport 规范:选择器:app:seo-production-deployment 端口:-名称:http 端口:80 targetPort:3003 协议:TCP 类型:NodePort
但是当我尝试从我的 conteudo 路径访问任何路由时,我得到一个 302 重定向循环。只是在使用这个入口时。例如,如果我更改为:
- host: ra2.myservice.com.br
http:
paths:
- path: /
backend:
serviceName: seo-production-deployment-nodeport
servicePort: 80
它开始正常工作。我找不到做出这种行为的合理动机。
解决方案
删除此注释:nginx.ingress.kubernetes.io/rewrite-target:/ 还将注释更改:nginx.ingress.kubernetes.io/ssl-redirect: "true" 到这个 nginx.ingress.kubernetes.io/force -ssl-redirect: "true" 编辑路径 - 路径:/conteudo/ 到 - 路径:/conteudo
推荐阅读
- node.js - 在 Angular 和 nodejs 中上传图像时,表单数据不保存
- jwt - 为什么使用 JWT 刷新令牌
- azure - Azure 函数应用在首次部署时间歇性失败:“资源应在部署之前存在。”
- google-cloud-firestore - 特定子集合的云消息传递
- laravel - Laravel Livewire 数据在渲染后转换为数组
- javascript - 即使对于反应中的状态 200,API 也没有获取任何响应(Fetch API)
- javascript - 为什么 getExpectedRate() 返回 0?
- ios - 在 Xcode 13 UIButton setBackgroundImage 中不起作用
- go - 如何使用火星代理添加动态标头?
- python - 如何让我的程序知道用户输入的列表是字符串还是数字?