这一定是一个非常容易回答的问题,但我似乎无法在任何地方找到解决方案。我有一个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上有端口号。我怎么能这样做?
由于
答案 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上进行了测试:
如果您在服务器上有源代码文件夹:
sudo play "start -Dhttp.port=80"
您可能会遇到错误sudo: play: command not found
。要解决此问题,请执行以下操作:
sudo play "start -Dhttp.port=80"
如果要将代码部署到生产服务器上,请执行以下操作:
play dist
- >此命令将在target / universal目录中生成.zip文件。unzip yourfile.zip
cd your_unzipped_folder/bin
sudo nohup ./yourapp -Dhttp.port=80