首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes ingress nginx-如果没有配置TLS,如何禁用对https的监听?

问Kubernetes ingress nginx-如果没有配置TLS,如何禁用对https的监听?
EN

Stack Overflow用户
提问于 2019-05-25 15:11:44
回答 2查看 8.8K关注 0票数 7

我正在使用kubernetes ingress-nginx,这是我的入口规范。http://example.com像预期的那样工作良好。但当我转到https://example.com时,它仍然可以工作,但指向的是带有假入口控制器证书的默认后端。如何禁用此行为?我想在这个特定的入口上完全禁用对https的侦听,因为没有配置TLS。

代码语言:javascript
复制
kind: Ingress
apiVersion: extensions/v1beta1
metadata:
  name: http-ingress
  annotations:
    kubernetes.io/ingress.class: "nginx"
spec:
  rules:
    - host: example.com
      http:
        paths:
          - backend:
              serviceName: my-deployment
              servicePort: 80

我已经尝试过这个nginx.ingress.kubernetes.io/ssl-redirect: "false"注解。但是,这没有任何效果。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-25 17:40:54

重定向与您的问题无关。

入口控制器正在监听端口80和443。当您仅使用80端口配置入口时,如果您到达443端口,您将被重定向到默认后端,这是预期行为。

一种解决方案是添加另一个nginx-controller,它只能监听80端口。然后,您可以使用kubernetes.io/ingress.class: myingress配置您的入口。在创建新的nginx控制器时,请更改守护程序的命令--ingress-class=myingress。然后,它将只处理用这个类注释的入口。

如果您使用helm部署它,只需覆盖controller.ingressClass值。

票数 2
EN

Stack Overflow用户

发布于 2019-05-25 17:02:33

我不知道一个入口-nginxtls值或入口annotation很容易禁用configmap。

您可以从入口控制器服务定义中删除端口443。

从spec.ports阵列中删除https条目

代码语言:javascript
复制
apiVersion: v1
kind: Service
metadata:
  name: mingress-nginx-ingress-controller
spec:
  ports:
  - name: https
    nodePort: NNNNN
    port: 443
    protocol: TCP
    targetPort: https

nginx仍将侦听TLS端口,但群集外部的客户端将无法连接到该端口。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56302606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档