问题描述
通过 Ingress 代理后端服务,并且在 Ingress 配置了 https 证书,Ingress 访问后端服务时默认会卸载掉证书,通过 http 方式访问后端服务;如何配置使Ingress访问后端服务也使用https。
问题分析
如果需要 Ingress 通过 https 访问后端服务,此时需要在 Ingress 中添 annotations,指定使用什么协议访问后端服务。
问题处理
如下 Ingress yaml 文件,在其中添加 nginx.ingress.kubernetes.io/backend-protocol
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-tomcat
namespace: default
annotations:
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
spec:
rules:
- host: xxx.xxx.com
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: svc-xxx
port:
number: 80
问题总结
该 annotations 除了支持 https 协议,还支持指定 HTTP, GRPC, GRPCS, AJP and FCGI
参考链接
https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#backend-protocol 如果您有其他问题,欢迎您联系火山引擎技术支持服务