【问题标题】:Deploying a Play! Framework app部署 Play!框架应用
【发布时间】:2011-06-26 23:57:16
【问题描述】:

在命令play run 之后,Play 如何作为机器上的主机启动?它是否在幕后运行 apache、tomcat 等?

如果我想让我的应用程序(使用 play! 框架构建)托管在例如 apache 上,这会是一件容易的事吗?

【问题讨论】:

  • 如答案中所述,play 可以与 apache 设置结合使用作为反向代理(请参阅将您的应用程序投入生产),或作为独立运行与 Play! 中包含的 netty 服务器一起使用。如果答案满足您的问题,请接受其中一个。

标签: playframework


【解决方案1】:

它在幕后运行netty。如果您想将它托管在 Tomcat 或 Jetty 等 servlet 容器下,只需从您的项目文件夹中执行此操作:

play war -o /tmp

您将在/tmp 文件夹中看到您项目的war 文件。把它贴在 Tomcat 或 Jetty 的 webapps 文件夹下,你应该很高兴。您可以使用 Apache/httpd 作为 servlet 容器的前端,就像使用任何此类设置一样(即您的战争来自 Playframework 的事实不会对前端部分产生任何影响)。

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 如何使用我的 Java/Scala 代码调用此服务器? (不使用 Play)
    【解决方案3】:

    为了清楚起见,从 play2 开始,不再有任何官方支持将您的项目打包为 war 文件,而且看起来支持不会很快恢复。

    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/ 等),我还没有使用过 https://github.com/dlecan/play2-war-plugin就个人而言,但我听说过它的好消息。

    【讨论】:

      猜你喜欢
      • 2011-08-15
      • 1970-01-01
      • 1970-01-01
      • 2015-01-20
      • 1970-01-01
      • 1970-01-01
      • 2012-01-06
      • 1970-01-01
      • 2015-08-01
      相关资源
      最近更新 更多