Kubernetes 如何为nginx入口控制器禁用自动https重定向?

Kubernetes 如何为nginx入口控制器禁用自动https重定向?,kubernetes,minikube,nginx-ingress,Kubernetes,Minikube,Nginx Ingress,我为本地minikube启用了ingress插件,并创建了一个自定义pod、服务和ingress。之后,我将入口主机添加到我的主机文件中,它指向minikube ip,以便我可以通过浏览器访问它。当访问url时,浏览器告诉我,由于“HTTP严格传输安全(HSTS)”标题,我被重定向到该url的https版本。Firefox和chrome不允许我继续,因为他们说证书(Kubernetes Ingress Controller Fake certificate)仅对url“Ingress.local

我为本地minikube启用了ingress插件,并创建了一个自定义pod、服务和ingress。之后,我将入口主机添加到我的主机文件中,它指向minikube ip,以便我可以通过浏览器访问它。当访问url时,浏览器告诉我,由于“HTTP严格传输安全(HSTS)”标题,我被重定向到该url的https版本。Firefox和chrome不允许我继续,因为他们说证书(Kubernetes Ingress Controller Fake certificate)仅对url“Ingress.local”有效。有了IE11,我可以接受风险,并实际继续下去。我能做些什么来防止重定向到https?我不想要https,只想要http。这是我的服务和入口的yaml文件

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: foobar-ingress
  annotations:
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
    kubernetes.io/ingress.class: "nginx"
spec:
  rules:
  - host: foobar.app
    http:
      paths:
      - path: /
        backend:
          serviceName: foobar-frontend
          servicePort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: foobar-frontend
spec:
  ports:
  - port: 80
    targetPort: 8080
  selector:
    app: foobar-frontend

您需要在Nginx configmap(通常在Ingres Nginx命名空间中命名为Nginx configuration)中禁用ssl重定向,如下所示:

kind: ConfigMap
metadata:
  labels:
    app: ingress-nginx
  name: nginx-configuration
  namespace: ingress-nginx
data:
  ssl-redirect: "false"
之后,您需要重新启动Nginx入口吊舱


另外,您可能需要清除浏览器重定向缓存:

看来我已经做对了。浏览器只是粗暴地缓存HSTS头,这就是为什么我总是被重定向。甚至清理缓存也不起作用。因此,我不得不将入口更改为另一个名称,然后它就起作用了。

您可能需要故意删除页面底部获取的HSTS记录chrome://net-internals/#hsts