amazon-web-services - ALB 入口 - 将流量从 HTTP 重定向到 HTTPS 不起作用

标签 amazon-web-services kubernetes kubernetes-ingress

我正在尝试路由所有 HTTP流量到HTTPS .我有一个 ALB 入口资源并遵循此处的指南 https://kubernetes-sigs.github.io/aws-alb-ingress-controller/guide/tasks/ssl_redirect/#how-it-works但它不工作。当我尝试访问 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

在这方面的任何帮助都会非常好,谢谢。

最佳答案

对于任何在这篇文章上绊倒的人。我错过了将它添加为我的 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

关于amazon-web-services - ALB 入口 - 将流量从 HTTP 重定向到 HTTPS 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60412448/

相关文章:

java - 使用 CloudWatch 代理和 StatsD 协议(protocol)的自定义指标

kubernetes - 如何配置 solace helm chart 以在 kubeadm 集群上使用

kubernetes - 在GKE中设置驱逐 pods 警报

Kubernetes 入口服务 NodePort 只听 tcp6/ipv6 不听 tcp/ipv4

amazon-web-services - 为什么 Elastic Load Balancing 报告 'Out of Service' ?

amazon-web-services - 使用 Cloudformation 堆栈中的联接导入值

python - 为函数定义的角色不能由 Lambda 承担

elasticsearch - Graylog无法连接到Kubernetes集群中的Elasticsearch

Azure-AKS:使用 Postman 测试启用了 TLS 的 Ingress

kubernetes - 是否可以在不停机的情况下重新配置在 Kubernetes 中运行的 Ingress?