问题描述
在 VKE 控制台只对要访问的域名设置了https,但是通过http也可以访问。
问题分析
ingress-nginx 默认会把80端口的请求强制跳转到443端口,如不想开启跳转功能,可以通过 annotation 或 ConfigMap 关闭该功能。
问题解决
- 通过 annotation 关闭80跳转到443
$ cat test-ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
namespace: default
annotations:
nginx.ingress.kubernetes.io/ssl-redirect: "false"
....
- 通过 ConfigMap 关闭80跳转到443
$ kubectl edit cm -n ingress-nginx ingress-nginx-controller
apiVersion: v1
data:
ssl-redirect: "false"
...
参考链接
[1] https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#server-side-https-enforcement-through-redirect [2] https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#ssl-redirect 如果您有其他问题,欢迎您联系火山引擎技术支持服务