ALB 入口 - 将流量从 HTTP 重定向到 HTTPS 不起作用
ALB Ingress - Redirect Traffic from HTTP to HTTPS not working
我正在尝试将所有 HTTP
流量路由到 HTTPS
。我有一个 ALB 入口资源并按照这里的指南 https://kubernetes-sigs.github.io/aws-alb-ingress-controller/guide/tasks/ssl_redirect/#how-it-works but its not working. When i try to access http://www.myhost.in 它与 http 保持一致但不会重定向到 https
下面是我的入口资源文件
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: eks-learning-ingress
namespace: production
annotations:
kubernetes.io/ingress.class: alb
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/certificate-arn: arn878ef678df
alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]'
alb.ingress.kubernetes.io/actions.ssl-redirect: '{"Type": "redirect", "RedirectConfig": { "Protocol": "HTTPS", "Port": "443", "StatusCode": "HTTP_301"}}'
labels:
app: eks-learning-ingress
spec:
rules:
- host: www.myhost.in
http:
paths:
- path: /*
backend:
serviceName: eks-learning-service
servicePort: 80
这方面的任何帮助都非常好,谢谢。
对于遇到此问题的任何人 post。我错过了将其添加为我的 http 路径。请记住,这需要是第一个指定的路径。
- path: /*
backend:
serviceName: ssl-redirect
servicePort: use-annotation
添加此重定向后开始工作。
所以最终的配置应该是这样的:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: eks-learning-ingress
namespace: production
annotations:
kubernetes.io/ingress.class: alb
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/certificate-arn: arn878ef678df
alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]'
alb.ingress.kubernetes.io/actions.ssl-redirect: '{"Type": "redirect", "RedirectConfig": { "Protocol": "HTTPS", "Port": "443", "StatusCode": "HTTP_301"}}'
labels:
app: eks-learning-ingress
spec:
rules:
- host: www.myhost.in
http:
paths:
- path: /*
backend:
serviceName: ssl-redirect
servicePort: use-annotation
- path: /*
backend:
serviceName: eks-learning-service
servicePort: 80
以防其他人使用较新的 API 版本设置集群; apiVersion: networking.k8s.io/v1
,语法不同的地方,这是要走的路:
- path: /
pathType: Prefix
backend:
service:
name: ssl-redirect
port:
name: use-annotation
注意: path
不能包含通配符,因为您使用的 pathType: Prefix
将无法配置 ALB。
我正在尝试将所有 HTTP
流量路由到 HTTPS
。我有一个 ALB 入口资源并按照这里的指南 https://kubernetes-sigs.github.io/aws-alb-ingress-controller/guide/tasks/ssl_redirect/#how-it-works but its not working. When i try to access http://www.myhost.in 它与 http 保持一致但不会重定向到 https
下面是我的入口资源文件
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: eks-learning-ingress
namespace: production
annotations:
kubernetes.io/ingress.class: alb
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/certificate-arn: arn878ef678df
alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]'
alb.ingress.kubernetes.io/actions.ssl-redirect: '{"Type": "redirect", "RedirectConfig": { "Protocol": "HTTPS", "Port": "443", "StatusCode": "HTTP_301"}}'
labels:
app: eks-learning-ingress
spec:
rules:
- host: www.myhost.in
http:
paths:
- path: /*
backend:
serviceName: eks-learning-service
servicePort: 80
这方面的任何帮助都非常好,谢谢。
对于遇到此问题的任何人 post。我错过了将其添加为我的 http 路径。请记住,这需要是第一个指定的路径。
- path: /*
backend:
serviceName: ssl-redirect
servicePort: use-annotation
添加此重定向后开始工作。
所以最终的配置应该是这样的:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: eks-learning-ingress
namespace: production
annotations:
kubernetes.io/ingress.class: alb
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/certificate-arn: arn878ef678df
alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]'
alb.ingress.kubernetes.io/actions.ssl-redirect: '{"Type": "redirect", "RedirectConfig": { "Protocol": "HTTPS", "Port": "443", "StatusCode": "HTTP_301"}}'
labels:
app: eks-learning-ingress
spec:
rules:
- host: www.myhost.in
http:
paths:
- path: /*
backend:
serviceName: ssl-redirect
servicePort: use-annotation
- path: /*
backend:
serviceName: eks-learning-service
servicePort: 80
以防其他人使用较新的 API 版本设置集群; apiVersion: networking.k8s.io/v1
,语法不同的地方,这是要走的路:
- path: /
pathType: Prefix
backend:
service:
name: ssl-redirect
port:
name: use-annotation
注意: path
不能包含通配符,因为您使用的 pathType: Prefix
将无法配置 ALB。