我在 Kubernetes 中使用 Ingress 资源设置了自定义 Nginx 入口控制器,而不是“default-http-backend 服务”,我使用自定义应用程序作为默认后端服务,为默认请求提供服务。我还为我的服务使用了设置为 kubernetes 机密的自定义 SSL。问题是当我请求规则中提到的主机名时,https 重定向有效。但是当发出规则中提到的主机以外的请求时,它服务于默认应用程序,但 https 重定向不起作用。
对于包括默认请求在内的所有请求,如何将请求从 http 重定向到 https。换句话说,如何在入口资源中为通配符域设置 https 重定向。
请找到我的 yaml 文件以获取入口资源。
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-resource
namespace: default
annotations:
kubernetes.io/ingress.class: "nginx"
kubernetes.io/ingress.allow-http: "false"
ingress.kubernetes.io/rewrite-target: /
ingress.kubernetes.io/ssl-redirect: "true"
ingress.kubernetes.io/proxy-connect-timeout: "14400"
ingress.kubernetes.io/proxy-send-timeout: "14400"
ingress.kubernetes.io/proxy-read-timeout: "14400"
spec:
tls:
- secretName: tls-secret
rules:
- host: service1.example.com
http:
paths:
- path: /
backend:
serviceName: service1
servicePort: 80
- host: service2.example.com
http:
paths:
- path: /
backend:
serviceName: service2
servicePort: 80
---