如何在 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
...解决了我的问题
我正在尝试创建一个规则,使用 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
...解决了我的问题