【问题标题】:Force only HTTPs Traffic on Kubernetes Nginx Ingress仅在 Kubernetes Nginx Ingress 上强制使用 HTTPs 流量
【发布时间】:2022-06-24 16:12:45
【问题描述】:

我正在尝试禁用特定 API 的所有 HTTP 入口流量。在添加此注释 kubernetes.io/ingress.allow-http: "false" 后,我尝试删除入口并重新创建,但这也不起作用。我仍然可以点击 API 并在 http:// 上获得响应

  • 当然,Nginx 控制器和 API 都部署在同一个 azure Kubernetes 集群上。
  • 在默认命名空间中创建了一个秘密my-tls-secret
  • Nginx 控制器有自己的命名空间

这里是入口 yaml 文件:

kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.allow-http: "false"
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /$2
  generation: 1
  labels:
    app.kubernetes.io/managed-by: Helm
  name: api-shipping-address-ingress
  namespace: nonprod-dev
  resourceVersion: "31734103"
  uid: c9a698a0-3d2e-4f3b-99a9-c16c6fa83774
spec:
  rules:
  - http:
      paths:
      - backend:
          service:
            name: api-shipping-address
            port:
              number: 3000
        path: /shipping-address(/|$)(.*)
        pathType: ImplementationSpecific
  tls:
  - secretName: my-tls-secret
status:
  loadBalancer:
    ingress:
    - ip: 10.86.168.200

【问题讨论】:

  • 您好,您可以分享一下您使用的 nginx 入口版本吗?

标签: nginx kubernetes https kubernetes-ingress nginx-ingress


【解决方案1】:

我遇到了同样的问题并通过添加nginx.ingress.kubernetes.io/force-ssl-redirect: "true" 解决了它,如the ingress-nginx documentation 中所述

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-04
    • 2016-12-24
    • 2019-05-14
    • 1970-01-01
    • 2016-08-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多