【问题标题】:HTTPS-only Play Framework on AWS ECSAWS ECS 上的仅 HTTPS 播放框架
【发布时间】:2018-04-16 18:50:00
【问题描述】:

设置:通过 ECS、前面的 Elastic Load Balancer 部署在 Amazon EC2 实例上的 Play Framework 应用程序。我只想允许应用程序的 HTTPS 请求。

我发现了几种在 Play 中使用 HTTPS 的方法,但优缺点是什么,或者哪一种是(dockerized)Play 应用的最佳实践?

  1. 直接在 Play 中启用 HTTPS(在配置文件中使用 -Dhttps.port 或 https.port)。
  2. 设置前端 Web 服务器(例如 Nginx)并让它处理 HTTP->HTTPS 重写 (example)。
  3. 在 Play 中实现请求过滤器并在应用程序中重定向请求 (as described here)。

我不太热衷于使用第一个版本,因为我必须在每个实例上单独管理证书,但为了完整起见,我将其列出。 对于第三种方法,我能想到的一个优点必须是系统架构比​​第二种版本更简单,并且需要的配置更少。使用第三种方法是否有任何缺点(例如性能)?

【问题讨论】:

    标签: amazon-web-services https playframework


    【解决方案1】:

    如果您使用的是负载均衡器,那么您应该从Amazon Certificate Manager 服务请求免费的 SSL 证书,然后将该证书附加到负载均衡器。

    要启用 HTTP 到 HTTPS 的重定向,您只需检查负载平衡器传递给服务器的 x-forwarded-proto 标头。如果是http,则返回带有https 的301。您链接的文章涵盖了这部分。

    【讨论】:

    • 感谢您提供有关证书管理器的提示。我知道用我链接的文章可以实现转发。但是我想知道应该使用哪种方法来实现转发 - 直接在 Play 中还是在前面使用专用的网络服务器?我应该注意这两种方法是否有任何(缺点)优势(例如性能)?
    • 这两种方法都没有真正的优势/劣势。如果您还没有使用反向代理服务器,那么我不会担心设置一个,因为它会增加复杂性并占用您服务器的一些 RAM。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-15
    • 2012-11-30
    • 2013-02-20
    • 2016-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多