Kubernetes 如何为nginx入口控制器禁用自动https重定向?
我为本地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文件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
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