http - 如何使用 Kubernetes Nginx 入口控制器禁用对服务的 http 访问?
问题描述
我有一项服务提供我希望只能通过https
. 我不想http
重定向到,https
因为这会暴露凭据并且调用者不会注意到。最好得到错误响应。
如何配置我的 ingress.yaml?请注意,我想为同一集群中的其他服务http
维护默认的 308 重定向。https
谢谢。
解决方案
在文档中:您可以阅读以下有关通过重定向执行 HTTPS 的句子:
默认情况下,如果为该入口启用了 TLS,则控制器会将 (308) 重定向到 HTTPS。如果要全局禁用此行为,可以
ssl-redirect: "false"
在 NGINX ConfigMap中使用。
要为特定入口资源配置此功能,您可以在特定资源中使用 nginx.ingress.kubernetes.io/ssl-redirect: "false" 注释。
您还可以创建两种单独的配置:一种使用 http 和 https,另一种仅用于 http。
使用kubernetes.io/ingress.class
注解,您可以选择要使用的入口控制器。
这种机制还为用户提供了运行多个NGINX 入口控制器的能力(例如,一个服务于公共流量,一个服务于“内部”流量)。
推荐阅读
- excel - 通过 Office.JS 获取 Excel 单元格绑定的问题
- c# - 从旧的excel文件中提取PNG问题?
- javascript - Tensorflow.js 多项式回归
- curl - 如何在 Windows PowerShell 的 curl 命令中传递 @filename.txt?
- linux - Windows 10 (WSL2) 上不支持的操作系统 Laravel 8 with Sail
- reactjs - ReferenceError:找不到变量:标记
- c++ - 我得到一个 Linker 2005 错误已经在 naive.obj 中定义并且已经在 strassen.obj 中定义
- javascript - 为 npm 打包智能 Vue 组件
- token - “预期的主要表达式”错误 - 尝试在 remix 上编译智能合约 - ethereum ide
- node.js - 从图像 url 将图像上传到谷歌驱动器