自定义K8S nginx ingress 重定向

背景描述

一个前端工程,此前采用的方案是:

Nginx反向代理 + Docker 应用服务;

后面统一升级为K8S方案:

SLB + Nginx Ingress + K8s deployment

迁移后,出现浏览器空白,控制台报错:

Mixed Content: The page at ‘https://a.com’ was loaded over HTTPS, but requested an insecure resource ‘http://a.com’. This request has been blocked; the content must be served over HTTPS.

在这里插入图片描述

kubernetes nginx ingress 301 was loaded over HTTPS, but requested an insecure frame

问题定位

在这里插入图片描述
具体问题就是,301重定向时,没有指定为https

此前Nginx反向代理配置为:
在这里插入图片描述
关键配置为,上图红框中的proxy_redirect

迁移后nginx ingress 生成的配置为:
在这里插入图片描述

修复方法

官方参考文档

在ingress 注解中添加两个字段:

nginx.ingress.kubernetes.io/proxy-redirect-from: http://
nginx.ingress.kubernetes.io/proxy-redirect-to: $scheme://

在这里插入图片描述

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐