首页 > 解决方案 > 如何使用 Kubernetes Nginx 入口控制器禁用对服务的 http 访问?

问题描述

我有一项服务提供我希望只能通过https. 我不想http重定向到,https因为这会暴露凭据并且调用者不会注意到。最好得到错误响应。

如何配置我的 ingress.yaml?请注意,我想为同一集群中的其他服务http维护默认的 308 重定向。https

谢谢。

标签: httpkuberneteshttpsnginx-ingress

解决方案


文档中:您可以阅读以下有关通过重定向执行 HTTPS 的句子:

默认情况下,如果为该入口启用了 TLS,则控制器会将 (308) 重定向到 HTTPS。如果要全局禁用此行为,可以 ssl-redirect: "false" 在 NGINX ConfigMap中使用。

要为特定入口资源配置此功能,您可以在特定资源中使用 nginx.ingress.kubernetes.io/ssl-redirect: "false" 注释。

您还可以创建两种单独的配置:一种使用 http 和 https,另一种仅用于 http。

使用kubernetes.io/ingress.class注解,您可以选择要使用的入口控制器。

这种机制还为用户提供了运行多个NGINX 入口控制器的能力(例如,一个服务于公共流量,一个服务于“内部”流量)。

另请参阅这个这个类似的问题。


推荐阅读