【问题标题】:Playframework 2.1.1 deploy on production serverPlayframework 2.1.1 在生产服务器上部署
【发布时间】:2024-10-05 23:30:02
【问题描述】:

我应该采取哪些步骤才能在生产服务器上正确部署 Playframework 2.1.1 网站? 更具体的问题:

1) 我应该在生产服务器上安装 Play 吗?

2) 在本地使用 play run 是很清楚的,但在生产中我需要 24/7 运行它并在服务器重新启动时再次重新启动它。这是如何工作的?是什么新人之类的?

3) 如何在 mydomain.com(端口 80)上的 Ubuntu 12.04(Apache2) 服务器上部署它? 4) 我应该为生产更改/添加哪些配置设置以禁用调试等?

非常感谢有关 Playframework 2.1.1 的默认部署工作流程的信息

【问题讨论】:

  • 你可以在Play documentation找到答案...
  • 是的,我已经读过了,但不幸的是它没有变得更清楚
  • 没有的一件事 - 如何在特定域(端口 80)而不是所有服务器上运行它!?
  • 正如@nkr 所说,您最好使用一些前端(Apache、nginx 或其他)来代理您的游戏应用程序。
  • 你能解释一下Apache2的配置吗!?

标签: java playframework-2.1


【解决方案1】:

首先使用play clean compile dist 创建项目的可部署版本。 文档recommendsplay clean compile stagedist 命令会生成一个不错的 ZIP 文件,并且做的事情基本相同。

然后您将该文件加载到您的服务器上并将其解压缩到所需的文件夹。现在使用 Play 为您创建的 start 文件启动 Play 服务器。

Play 默认使用 TCP 端口 9000,就像在调试模式下一样,但您可以使用选项 -Dhttp.port=80 更改它。可以通过-Dhttp.address=127.0.0.1 监听特定的 IP 地址。

但我所做的是使用 nginx 作为反向代理来控制链接 GZIP 压缩和侦听特定主机名。只需在网上搜索有关反向代理的更多详细信息。

您应该有一个自己的配置文件供您的生产使用,因为您需要关闭进化、更改数据库服务器以及您在开发过程中添加的一些其他内容。更多关于生产配置可以找到in the docs

【讨论】: