gpt4 book ai didi

kubernetes - 在Kubernetes Nginx Ingress Controller中,从http重定向到https不适用于自定义后端服务

转载 作者:行者123 更新时间:2023-12-02 11:44:29 25 4
gpt4 key购买 nike

我在Kubernetes中使用Ingress资源设置了自定义Nginx入口 Controller ,而不是使用“default-http-backend service”,而是使用自定义应用程序作为默认后端服务,用于默认请求。我还为我的服务使用了设置为kubernetes secret 的自定义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

---

最佳答案

我需要为没有设置规则的默认请求配置自定义服务(不是default-http-backend服务),并且此自定义服务应使用自定义SSL。目前,如果Ingress规则中省略了域名,nginx-ingress-controller不会执行任何操作(使用“通配符” TLS证书的目的)。
因此,我在我使用的入口yaml中添加了以下代码,因此效果很好。我在底部的自定义默认服务的入口规则中添加了通配符tls名称。请在下面找到代码:

  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

- host: '*.example.com'
http:
paths:
- path: /
backend:
serviceName: custom-backend-service
servicePort: 80

关于kubernetes - 在Kubernetes Nginx Ingress Controller中,从http重定向到https不适用于自定义后端服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52552686/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com