2011-06-26 154 views
13

在命令play run之后,Play如何作为机器上的主机启动?它在幕后运行apache,tomcat还是这样?部署Play!框架应用程序

如果我想让我的应用程序(使用play!框架构建)托管在例如apache上,是否会变得很容易?

+1

正如答案中提到的,play可以与apache setup一起用作反向代理(请参阅将您的应用程序投入制作),或者作为Play!中包含的netty服务器独立运行。如果答案满足您的问题,请接受其中一个答案。 – emt14

回答

11

播放通常使用自己的服务器,play.server.Server类运行。通过另一台服务器(如Apache)访问Play应用程序的速度永远不会比直接访问Play服务器的速度更快,但如果由于其他原因想要这样做,请参阅Put your application in production

+0

如何使用我的Java/Scala代码调用此服务器? (不使用Play) – Jus12

14

它在幕后运行netty。如果你想举办它在如Tomcat或Jetty servlet容器,只要做到这一点,从您的项目文件夹:

play war -o /tmp 

,你会看到在/tmp文件夹项目的war文件。将它贴在Tomcat或Jetty的webapps文件夹下,你应该很好。您可以像使用任何此类设置一样使用Apache/httpd对servlet容器进行前端处理(即,来自Playframework的战争对前端部分没有任何影响)。

5

为了清晰起见,截至play2,不再有任何官方支持将您的项目打包为战争文件,而且看起来支持将不久将会回来。

Play2现在带有基于Netty的自己的网络服务器,并且您可以使用“play stage”打包项目并使用“target/start”命令将其运行到位。

如果您打算在未安装Play2的服务器上托管您的项目,请首先使用“sbt compile stage”命令,它将为您捆绑必要的依赖关系。

然而,如果您仍然有兴趣部署到Servlet 3.0或2.5容器(Tomcat 6/7,Jetty 7/8/9,JBoss 5/6/etc),我还没有亲自使用过这个功能,但在https://github.com/dlecan/play2-war-plugin上有非官方的努力但我已经听到了好消息。

相关问题