容器服务ACK alb ingress要同时使用 http转https 和 路由路径重写 功能,有办法同时实现么?
是的,容器服务ACK中的ALB Ingress控制器支持同时使用HTTP转HTTPS和路由路径重写功能。
HTTP转HTTPS功能可以通过在Ingress规则中指定tls
部分来实现。您可以为每个Ingress规则配置相应的TLS证书,并将tls
部分添加到您的Ingress定义中。这样,当请求到达时,ALB Ingress控制器将自动将HTTP流量重定向到HTTPS。
路由路径重写功能可以通过在Ingress规则的path
字段中定义所需的路径重写规则来实现。您可以使用正则表达式或通配符来匹配特定的URL路径,并将其重写为目标路径。
下面是一个示例Ingress规则,演示了如何同时使用HTTP转HTTPS和路由路径重写功能:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
spec:
tls:
- hosts:
- example.com
secretName: my-tls-secret
rules:
- host: example.com
http:
paths:
- path: /old-path
pathType: Prefix
backend:
service:
name: my-service
port:
number: 80
上述示例中,通过在tls
部分配置了主机名和TLS证书,实现了HTTP重定向到HTTPS。同时,在rules
部分的paths
字段中定义了路径重写,将来自example.com/old-path
的请求重定向到后端服务my-service
。
ACK的ALB Ingress可以同时实现HTTP转HTTPS和路由路径重写两个功能。
具体配置如下:
yaml
Copy
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test-ingress
annotations:
alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]'
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/actions.ssl-redirect: '{
"Type": "redirect",
"RedirectConfig": {
"Protocol": "HTTPS",
"Port": "443",
"StatusCode": "HTTP_301"
}
}'
spec:
rules:
alb.ingress.kubernetes.io/listen-ports:指定ALB监听80和443端口
alb.ingress.kubernetes.io/scheme:指定为公网型ALB
alb.ingress.kubernetes.io/actions.ssl-redirect:配置HTTP请求自动转HTTPS
path:指定路由路径为/testpath
servicePort:分别指定80和443端口后端服务
这样就可以实现:
访问test.example.com/testpath,ALB会转发至80端口服务
访问test.example.com/ ,ALB会转发至443端口服务
80端口请求会自动重定向至HTTPS
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。