1

这一定是一个非常容易回答的问题,但我似乎无法在任何地方找到解决方案。我有一个播放框架 2 应用程序,我想在 Windows Server 2008 上投入生产。我只有端口 80 8080 和 443 对外开放。我用这个开始我的游戏应用程序:

play -Dhttp.port=80 "run 80"

但我收到一条错误消息,提示“无法绑定到:/0.0.0.0:80。我可以这样做:

play -Dhttp.port=8080 "run 8080"

这很有效,我可以通过键入http://sometestingurl.pt:8080/index来获得对我的 Web 应用程序的外部访问,但我不想在我的 URL 上有端口号。我怎样才能做到这一点?

谢谢

4

3 回答 3

2

在生产模式下运行应用程序时,Play 的建议是不要使用运行命令,而是使用运行任务start后为您生成的脚本。dist

运行dist任务并在服务器上解压缩应用程序后,以下命令应启动它并绑定到端口 80:

start -Dhttp.port=80
于 2013-05-28T23:26:10.900 回答
1

您可能在端口 80 上运行了另一个应用程序。如果它是 Windows Server,那么很有可能 IIS 正在运行(有关如何关闭它的详细信息,请参阅http://support.microsoft.com/kb/321141 )。

除了将 Play 应用程序本身配置为在端口 80 上运行外,您还可以设置前端 Web 服务器,如下所述:http ://www.playframework.com/documentation/2.1.1/HTTPServer 。这种技术还有一个额外的优势,它使您能够使用虚拟主机在端口 80 上运行多个 Play 应用程序。

另一件事......目前无法在 Windows 上以生产模式运行 Play 应用程序,因此您必须使用“运行”命令(或将应用程序移动到 Unix 机器)。更多细节在这里:http ://www.playframework.com/documentation/2.1.1/Production

于 2013-05-29T14:54:58.773 回答
0

我正在使用播放版本 2.2.2。以下解决方案在 CentOS 6.5 上测试:

如果服务器上有源代码文件夹:

  1. cd 进入你的项目目录
  2. sudo play "start -Dhttp.port=80"

您可能会遇到错误sudo: play: command not found。要解决此问题,请执行以下操作:

  1. '纳米/etc/sudoers'
  2. 在“secure_path”前面添加“#”(注释掉这一行)
  3. 然后,返回您的项目目录并重复步骤 2)sudo play "start -Dhttp.port=80"

如果您想将代码部署到生产服务器上,您可以这样做:

  1. cd 进入你的项目目录
  2. play dist-> 此命令将在目标/通用目录中生成一个 .zip 文件。
  3. 将此 .zip 文件传输到您的生产服务器
  4. 解压缩 .zip 文件unzip yourfile.zip
  5. 文件解压后:
    cd your_unzipped_folder/bin
  6. 应该有一个与您的应用程序名称同名的文件。启动它:
    sudo nohup ./yourapp -Dhttp.port=80
于 2014-06-12T08:38:08.490 回答