我有一个使用Scalatra用Scala编写的服务,该服务运行在通过AWS ELB侦听的AWS ECS上。我已将ELB配置为TLS终结器:端口443上的HTTPS流量和端口80上的HTTP流量被路由到ECS任务上监听端口8080的服务。
我想将所有HTTP通信重定向到HTTPS。我了解ELB会根据原始请求将标头X-Forwarded-Proto
设置为http
或https
。
处理重定向的最佳方法是什么?
答案 0 :(得分:1)
如果您在Scalatra应用程序的前面有一个反向代理,则可以在此处将http重定向到https: https://aws.amazon.com/premiumsupport/knowledge-center/redirect-http-https-elb/
如果没有反向代理,则必须在Scalatra应用程序中做同样的事情。我认为最简单的方法是创建一个servlet过滤器,该过滤器通过检查X-Forwarded-Proto
标头将http重定向到https。