我有一个提供API的服务,我希望只能通过https
访问该服务。我不希望http
重定向到https
,因为这会暴露凭证,调用者不会注意到。最好得到一个错误响应。
如何配置ingress.yaml?注意,对于同一集群中的其他服务,我希望保持从http
到https
的默认308重定向。
谢谢。
在文档中:您可以阅读以下关于通过重定向强制HTTPS的句子:
默认情况下,如果为该入口启用TLS,控制器将重定向(308)到HTTPS。如果你想全局禁用此行为,你可以在NGINX ConfigMap中使用
ssl-redirect: "false"
。
要为特定的入口资源配置此特性,可以使用nginx.ingress.kubernetes。io/ssl-redirect:"false"在特定资源中的注释。
你也可以创建两个单独的配置:一个包含http和https,另一个只包含http。
使用kubernetes.io/ingress.class
注释可以选择要使用的入口控制器。
该机制还为用户提供了运行多个NGINX入口控制器的能力(例如,一个服务于公共流量,一个服务于"内部";交通)。
参见这个和这个类似的问题。