如何使用 Kubernetes Nginx 入口控制器禁用对服务的 http 访问?
How to disable http access to service using Kubernetes Nginx ingress controller?
我有一项提供 API 的服务,我希望只能通过 https
访问该服务。我不希望 http
重定向到 https
,因为这会暴露凭据并且调用者不会注意到。最好得到错误响应。
如何配置我的 ingress.yaml?请注意,我想为同一集群中的其他服务维护从 http
到 https
的默认 308 重定向。
谢谢。
在documentation中:您可以阅读以下关于通过重定向强制执行 HTTPS 的句子:
By default the controller redirects (308) to HTTPS if TLS is enabled for that ingress. If you want to disable this behavior globally, you can use ssl-redirect: "false"
in the NGINX ConfigMap.
To configure this feature for specific ingress resources, you can use the nginx.ingress.kubernetes.io/ssl-redirect: "false" annotation in the particular resource.
您还可以创建两个单独的配置:一个带有 http 和 https,另一个仅用于 http。
使用 kubernetes.io/ingress.class
注释,您可以选择要使用的入口控制器。
This mechanism also provides users the ability to run multiple NGINX ingress controllers (e.g. one which serves public traffic, one which serves "internal" traffic).
另请参阅 and 类似问题。
我有一项提供 API 的服务,我希望只能通过 https
访问该服务。我不希望 http
重定向到 https
,因为这会暴露凭据并且调用者不会注意到。最好得到错误响应。
如何配置我的 ingress.yaml?请注意,我想为同一集群中的其他服务维护从 http
到 https
的默认 308 重定向。
谢谢。
在documentation中:您可以阅读以下关于通过重定向强制执行 HTTPS 的句子:
By default the controller redirects (308) to HTTPS if TLS is enabled for that ingress. If you want to disable this behavior globally, you can use
ssl-redirect: "false"
in the NGINX ConfigMap.
To configure this feature for specific ingress resources, you can use the nginx.ingress.kubernetes.io/ssl-redirect: "false" annotation in the particular resource.
您还可以创建两个单独的配置:一个带有 http 和 https,另一个仅用于 http。
使用 kubernetes.io/ingress.class
注释,您可以选择要使用的入口控制器。
This mechanism also provides users the ability to run multiple NGINX ingress controllers (e.g. one which serves public traffic, one which serves "internal" traffic).
另请参阅