5

我是 Play Framework (2.0.4) 的新手。我开发了一个小应用程序并在内置的播放框架 Web 服务器上本地运行它。现在我想将它部署在远程服务器(APPFOG.COM 或任何其他 Web 服务器)上。有人可以指导我如何远程部署它。

是否必须创建war文件,如果是,请指导我如何创建它并将其部署在远程服务器上。

如果有其他方法,请在这方面指导我。

提前致谢

4

4 回答 4

6

最好看的地方是 Github 上的 Play 文档:https ://github.com/playframework/Play20/wiki/Production

在本文档中,您将找到几种在多个提供商上部署应用程序的方法:

但是,如果您想在 servlet 容器中部署 Play2 应用程序(即作为战争),请查看play2-war-plugin

于 2012-11-11T14:14:50.387 回答
3

您无需在应用服务器(如 tomcat)或使用 WAR 文件格式部署您的 play 应用程序。Play 已经自带了自己的捆绑服务器。

对于 Play 2.6 版:“Play 现在使用Akka-HTTP服务器引擎作为默认后端。”

过去的版本默认使用Netty 。它仍然受支持,但必须显式配置。

要部署您的应用程序,您需要创建一个分发包以在您的项目主文件夹上运行:

sbt dist

创建二进制分发:“这会生成一个 ZIP 文件,其中包含在应用程序的目标/通用文件夹中运行应用程序所需的所有 JAR 文件。

要运行应用程序,请在目标服务器上解压缩文件,然后运行 ​​bin 目录中的脚本。脚本的名称是您的应用程序名称,它有两个版本,一个 bash shell 脚本和一个 windows .bat 脚本。”

这些是部署应用程序的步骤:

  1. 创建分发包sbt dist
  2. 生成您的应用程序秘密运行:playGenerateSecret
  3. 在您的服务器中复制并解压缩包并运行应用程序的二进制启动脚本并将密钥作为参数传递:

unzip my-first-app-1.0.zip

my-first-app-1.0/bin/my-first-app -Dplay.http.secret.key=abcdefghijk

在此处查看有关部署说明的更多详细信息。

您可能还想使用SBT Native Packager研究其他部署格式,因为它为各种格式提供工件生成功能,包括:

  • OS X 磁盘映像
  • 微软安装程序 (MSI)
  • RPM
  • Debian 软件包
  • RPM/Debian 软件包中的 System V / init.d 和 Upstart 服务
于 2018-05-09T04:38:30.007 回答
0

看看这个,如果您希望自动化您的 Play 应用部署,可能会有所帮助

http://community.opscode.com/cookbooks/deploy-play

于 2014-03-04T09:27:22.717 回答
0

最近写了一篇文章,展示了使用 supervisor 和 monit 部署完整证明的可自重加载播放应用程序的步骤。

我写这篇文章是因为 play 部署文档在撰写本文时没有解决问题的方法,例如由于 tun 时间异常导致的失败或由于内存泄漏导致的应用程序挂起。Monit 是监控后台运行的进程的绝佳工具。 http://www.ravinderpayal.com/Deploying-Play-Scala-application-into-production-by-Ravinder-Payal/

于 2017-11-15T07:23:49.273 回答