我目前正在使用Play!1.2.2及其新的Netty客户端框架。
尽管可以使HTTP和HTTPS异步提供服务,但我没有找到一种简单的方法来强制执行SSL。有没有与Play合作的人!有直接执行SSL的方法吗?不知道我是否需要创建重定向,或者是否可以在conf文件中快速解决此问题。
conf
有两种方法可以强制实施SSL。
首先,您可以将所有操作设置为使用该.secure()方法,例如
.secure()
<a href="@{Application.index.secure()}">index page</a>
另一种可能也是最好的方法是通过前端HTTP服务器(例如Apache,Nginx或Lighttpd)执行此操作。
前端http服务器的想法是,您的应用程序在端口9000上运行,但无法从外部网络访问。HTTP负责所有传入请求,并且配置为仅接受HTTPS。HTTPS由HTTP服务器处理,然后将请求转发到Play。
这样您的整个Play应用程序都可以正常运行,并且SSL被卸载到了另一个应用程序中。
可以将相同的方法应用于负载均衡器,而不是HTTP服务器,但是我猜想,除非在公司环境中运行,否则大多数人会使用便宜得多的HTTP服务器替代方案。