【问题标题】:PlayFramework HTTPS routes only in prod mode, HTTP in dev modePlayFramework HTTPS 仅在 prod 模式下路由,HTTP 在 dev 模式下
【发布时间】:2011-07-13 20:16:46
【问题描述】:

我希望某些路由在生产模式下始终为 HTTPS,但在开发模式下为 HTTP。现在,我知道创建 https 路由的唯一方法是使用: @@{Controller.action().secure()},但这会将它们硬编码为 https。

这可以在路由中还是通过 application.conf 设置实现?

【问题讨论】:

    标签: playframework


    【解决方案1】:

    将其工作方式从 Dev 模式更改为 Prod 模式的唯一简单方法是将 Play 保留为仅 HTTP,然后通过使用 NGinx、Lighttp 或 Apache 等 HTTP 服务器将整个站点保护为 Prod 模式。

    这种方法意味着您的应用程序在两种模式下都保持不变,并且配置是在比您的应用程序更高的层上完成的。

    然而,这种方法将意味着您的整个网站将变为 HTTPS,但我实际上并不认为这是一件坏事,事实上它可能会让您的用户对安全性更有信心整个网站。

    【讨论】:

    • +1 适用于所有 HTTPS。如果您有一个通过 HTTP 运行会话的 cookie,那么它在大多数 WiFi 网络上都是一键劫持。
    • 但是混合 HTTP 和 HTTPS 部分的环境呢?一种方法是强制应用程序的特定部分(例如“/secure/...”)使用 https,并让应用程序的其余部分使用 http。 (在像 Nginx 这样的前端代理的帮助下)这很好用,除非我没有找到一个解决方案,可以根据我所在的应用程序的部分,使用给定的方案在模板中呈现 URL。(使用给定的反向路由方案定义)
    • 当然,如果你在 amazon 环境中,我听说 https 上的性能很糟糕,如果你有他们的 ELB 负载均衡器终止它,如果你在你的网络服务器上终止 https 会好得多(我猜有很多权衡)....如果您在亚马逊已经有 10 个网络服务器,最好终止那里,因为您不想仅仅因为启用了 https 而最终得到 10 个 ELB。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-17
    • 1970-01-01
    • 2018-01-08
    • 2020-04-26
    • 2016-12-19
    相关资源
    最近更新 更多