如何在 nginx ingress Kubernetes 中设置 proxy_pass https

How to set proxy_pass https in nginx ingress Kubernetes

我正在尝试创建一个规则,使用 Kubernetes ngnix 入口控制器将 https 请求转发到 https 后端。到目前为止,我无法创建工作规则。我在我的 k8s 清单中尝试了几个入口语句:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: hs-ingress
  annotations:
    ingress.kubernetes.io/rewrite-target: /
#    nginx.ingress.kubernetes.io/ssl-redirect: "true"
#    ingress.kubernetes.io/ssl-redirect: "true"
#    ingress.kubernetes.io/ssl-passthrough: "true"
#    nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
#    nginx.ingress.kubernetes.io/ssl-passthrough: "true"
#    ingress.kubernetes.io/backend-protocol: "HTTPS"
#    ingress.kubernetes.io/ssl-passthrough: "true"
  namespace: heartbleed-test
spec:
  rules:
  - http:
      paths:
        - path: /banana
          backend:
            serviceName: hs-service
            servicePort: 443

经过一番挖掘,我发现问题出在控制器入口规则中的 proxy_pass 属性:

proxy_pass: http://heartbleed-test-hs-service-443;

当我将 http 更改为 https 时,一切正常。 那么如何从我的 k8s 清单中设置这个 属性?

nginx.ingress.kubernetes.io/backend-protocol

...解决了我的问题