nginx - Kubernetes ingress-nginx - 如果未配置 TLS,如何禁用 https 监听?

标签 nginx kubernetes google-kubernetes-engine nginx-ingress

我正在使用 kubernetes ingress-nginx这是我的 Ingress 规范。 http://example.com按预期工作正常。但是当我去https://example.com它仍然有效,但指向带有假入口 Controller 证书的默认后端。如何禁用此行为?我想在这个特定的入口上完全禁用对 https 的监听,因为没有配置 TLS。

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"注解。然而,这没有效果。

最佳答案

我不知道 ingress-nginx configmap值或入口 annotation轻松禁用TLS。

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

删除 https条目来自 spec.ports大批

apiVersion: v1
kind: Service
metadata:
  name: mingress-nginx-ingress-controller
spec:
  ports:
  - name: https
    nodePort: NNNNN
    port: 443
    protocol: TCP
    targetPort: https

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

关于nginx - Kubernetes ingress-nginx - 如果未配置 TLS,如何禁用 https 监听?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56302606/

相关文章:

google-kubernetes-engine - 大约 3 分钟的 GKE *集群* 启动时间正常吗?

nginx - 使用Nginx进行Docker动态负载平衡

magento - 如何将 CORS(跨源策略)添加到 NGINX 中的所有域?

docker - 在centos7上安装Kubernetes

kubernetes - kube-dns服务发现无法发现服务的端口号

java - Kubernetes:无法访问部署的公开服务

linux - 如何为nginx服务编写upstart脚本?

.htaccess - PRESTASHOP NGINX + 重写规则

Kubernetes - Nginx 入口 Controller - GCS - 如果 URL 中没有路径,则重定向到 `index.html`

windows - 在 Windows 7 上启动 minikube 无法启动 - 获取主机状态时出错 : machine does not exist