【问题标题】:How to use aws nlb with nginx ingress controller for ssl如何将 aws nlb 与用于 ssl 的 nginx 入口控制器一起使用
【发布时间】:2022-01-12 20:22:56
【问题描述】:

我已将 AWS ACM 提供的 SSL 证书附加到 NLB。 NLB 会将请求转发到 nginx 入口。 Nginx 给我以下错误。 The plain HTTP request was sent to HTTPS port。 我在 nginx 入口中设置了以下注释。

  • nginx.ingress.kubernetes.io/force-ssl-redirect: false
  • nginx.ingress.kubernetes.io/ssl-redirect: false

我在 NLB 后面运行的 nginx 入口服务中设置了以下注释。

  • service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http
  • service.beta.kubernetes.io/aws-load-balancer-ssl-cert: "证书
  • arn" service.beta.kubernetes.io/aws-load-balancer-ssl-ports: https
  • service.beta.kubernetes.io/aws-load-balancer-type: nlb

【问题讨论】:

    标签: kubernetes amazon-eks nginx-ingress aws-nlb


    【解决方案1】:

    对于这个错误:

    普通的 HTTP 请求被发送到 HTTPS 端口

    更改 Nginx 服务中的端口配置,例如,HTTPS 部分中的 目标端口 应改为 http https

    ports:
      - name: https
        **targetPort: http**
    

    这里的注释供参考

    service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp
        service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: "60"
        service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled: "true"
        service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:aws:acm:ap-southeast-1:xxxxxxx:certificate/8991ftt8-69e0-4e7d-1164-yy0aae19da90v
        service.beta.kubernetes.io/aws-load-balancer-type: nlb
    

    【讨论】:

    • 这行得通。但是当我发送http请求时它不起作用。对于 https 请求,它工作正常。 @HarshManvar
    • 或者你可能想使用service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "https"
    • 您现在可以将您的 http 流量重定向到 https,因此所有来自 http 的请求都会自动重定向到 https,因为它现在正在工作。因此您的 ssl 终止将处于 nlb 级别。 service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "https"
    猜你喜欢
    • 1970-01-01
    • 2018-11-15
    • 2021-03-07
    • 1970-01-01
    • 1970-01-01
    • 2020-01-06
    • 2018-01-04
    • 1970-01-01
    • 2019-07-19
    相关资源
    最近更新 更多