我在ec2上有一个Play应用程序,我刚刚部署过。一切似乎都很好,它在互联网上可见。但是,只有在服务器正常工作时它似乎才好。我的意思是,当我通过ssh连接到ec2然后通过play run
启动服务器时,从那时起它就可以在互联网上看到,可以正常工作。我知道这很明显。但我尝试在play run&
的后台运行它并且它从未起作用:
$ play run &
[1] 2470
$ jobs
[1]+ Stopped play run
$ play run&
[2] 2494
$ jobs
[1]- Stopped play run
[2]+ Stopped play run
我做错了吗?但我应该做什么和做什么?
答案 0 :(得分:2)
答案 1 :(得分:1)
此外,还建议使用Apache或Nginx的反向代理运行生产。 (现在几乎是Linux上的事实标准),您也可以使用play dist
命令进行部署。基本上,它会将您的代码编译成一个包并将其放入一个zip文件中。
您可以将zip文件解压缩到想要运行应用程序的任何位置,然后只需运行它:
$ ./<yourapplication>/bin/<yourapplication> -Dhttp.port=<whichever port you want to run it at> &
确保PATH中有java
可执行文件,此方法将避免与Play应用程序本身有任何依赖关系。最后,如果您需要将应用程序部署到负载平衡器后面的多个服务器中,您可能希望创建Linux init脚本 - 这样您就可以运行service <your-app> start
或service <your-app> stop
< / p>
此处有更多信息:http://www.playframework.com/documentation/2.2.x/ProductionDist。
此外,请务必查看最新的播放文档,因为它经常更新。