如何强制ingress-nginx仅使用HTTP,关闭默认HTTPS自动跳转
解决方案
你需要在Ingress资源的annotations中添加nginx.ingress.kubernetes.io/ssl-redirect: "false"注解,关闭当前Ingress规则的强制HTTPS重定向逻辑即可。
修改后的完整配置如下
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: ingress-srv annotations: kubernetes.io/ingress.class: nginx nginx.ingress.kubernetes.io/use-regex: "true" nginx.ingress.kubernetes.io/backend-protocol: "HTTP" # 新增以下注解关闭强制HTTPS重定向 nginx.ingress.kubernetes.io/ssl-redirect: "false" spec: rules: - host: mosi.ir http: paths: - path: / pathType: Prefix backend: service: name: posts-srv port: number: 3020 --- apiVersion: networking.k8s.io/v1 kind: IngressClass metadata: labels: app.kubernetes.io/component: controller name: nginx annotations: ingressclass.kubernetes.io/is-default-class: "true" spec: controller: k8s.io/ingress-nginx
补充说明
- ingress-nginx默认
ssl-redirect参数值为true,只要集群中存在任意配置了TLS的Ingress资源,控制器就会默认对所有HTTP请求触发301重定向到HTTPS端口,显式设置为false即可关闭该规则下的重定向。 - 如果你需要全局关闭所有Ingress的强制HTTPS重定向,可以修改ingress-nginx控制器关联的ConfigMap,添加
data.ssl-redirect = "false"配置即可。 - 如果之前开启过HSTS配置导致浏览器缓存了强制HTTPS逻辑,可以额外添加注解
nginx.ingress.kubernetes.io/hsts: "false",清理浏览器缓存后即可正常通过HTTP访问。
内容的提问来源于stack exchange,提问作者mostafa nadi
相关产品推荐
相关产品推荐

