请教下容器服务ACK, nginx ingress 默认没有 ssl 强制跳转到https,注解里面选项里怎么加?
在容器服务ACK中,如果您使用的是Nginx Ingress Controller,默认情况下可能没有启用SSL跳转到HTTPS。要添加此功能,您可以在Ingress对象的Annotations中配置相应的选项。
以下是一个示例,展示如何在Annotations中添加跳转到HTTPS的配置:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
annotations:
nginx.ingress.kubernetes.io/ssl-redirect: "true"
spec:
rules:
- host: example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-service
port:
number: 80
在上述示例中,我们在Ingress对象的Annotations中添加了nginx.ingress.kubernetes.io/ssl-redirect: "true"
配置。这将告诉Nginx Ingress Controller在接收到HTTP请求时自动将其重定向到HTTPS协议。
您可以使用nginx.ingress.kubernetes.io/ssl-redirect annotation 为Ingress启用SSL重定向:
yaml
Copy
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test-ingress
annotations:
nginx.ingress.kubernetes.io/ssl-redirect: "true"
这个annotation会告诉Nginx Ingress:
如果请求的是HTTP,则返回302跳转到HTTPS URL
只有HTTPS请求才会被正常处理
有两种使用此annotation的方式:
在整个Ingress上添加
这样所有在此Ingress下的host都会重定向到HTTPS。
在具体的host上添加
yaml
Copy
annotations:
nginx.ingress.kubernetes.io/ssl-redirect: "true"
host: www.example.com
这样只有www.example.com这个host会重定向到HTTPS。
除此之外,您也可以指定重定向代码:
yaml
Copy
nginx.ingress.kubernetes.io/ssl-redirect: "301"
不是可以加tls配置吗,不行的话,就 yaml 编辑,nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
我测试是每次都能自动跳转 https,没有什么注解,就只是开了tls,此回答整理自钉群“阿里云容器服务ACK用户大群”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。