我有一个EKS设置,其中流量以下列方式发送。
用户-〉Cloudfront-〉ALB-〉EKS。EKS有一个NginX入口控制器。
目前"force-ssl-redirect"已启用,因此NginX入口控制器将所有HTTP流量重定向到HTTPS。
我希望Cloudfront使用HTTP与ALB连接。因此,我希望在NginX控制器中有一个条件HTTPS重定向。
因此,
1.我将为来自Cloudfront的请求设置自定义标头
1.如果找到这个新的头,我希望NginX控制器返回HTTP中的正确响应,如果没有,我希望重定向到HTTPS。
如何才能做到这一点?
2条答案
按热度按时间icomxhvb1#
我假设您希望在Cloudfront上添加一个自定义头,然后在Nginx端进行重定向。
1.您可以通过Cloudfront Functions -https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-functions.html向请求添加自定义标头
1.然后,我认为您需要使用Ingress Kubernetes资源中的
nginx.ingress.kubernetes.io/configuration-snippet
注解来向Nginx位置添加自定义配置。gkl3eglg2#
您可以使用NginX配置Map进行条件HTTPS重定向。
您需要创建带有自定义代码段的Nginx配置,以检查CloudFront设置的自定义头。
如果头存在,NginX返回301重定向和HTTP;如果不存在,它将使用HTTPS重定向到相同URL
现在您需要将配置Map添加到NginX入口控制器
转发到ALB时,您需要将CLoudFront设置为包含“http_cf_custom_header”。请查看此官方page,有关详细信息,请查看AWS官方documentation。