Play Framework 2 URL没有端口

时间:2013-05-28 15:51:26

标签: url binding playframework-2.0 port

这一定是一个非常容易回答的问题,但我似乎无法在任何地方找到解决方案。我有一个Play框架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上有端口号。我怎么能这样做?

由于

3 个答案:

答案 0 :(得分:2)

在生产模式下运行应用程序时,Play的建议是not use the run command,而是使用运行start任务后为您生成的dist脚本

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

start -Dhttp.port=80

答案 1 :(得分: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

答案 2 :(得分:0)

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

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

  1. cd进入您的项目目录
  2. sudo play "start -Dhttp.port=80"
  3. 您可能会遇到错误sudo: play: command not found。要解决此问题,请执行以下操作:

    1. ' nano / etc / sudoers'
    2. 在“secure_path"前面添加”#“; (注意这一行)
    3. 然后,返回您的项目目录并重复步骤2)sudo play "start -Dhttp.port=80"
    4. 如果要将代码部署到生产服务器上,请执行以下操作:

      1. 进入您的项目目录
      2. play dist - >此命令将在target / universal目录中生成.zip文件。
      3. 将此.zip文件转发到您的生产服务器
      4. 解压缩.zip文件unzip yourfile.zip
      5. 文件解压后

      6. cd your_unzipped_folder/bin
      7. 应该有一个与您的应用程序名称同名的文件。启动:
        sudo nohup ./yourapp -Dhttp.port=80
相关问题