如何让网络服务器不断运行"?

时间:2014-03-16 05:38:41

标签: scala ubuntu amazon-web-services playframework amazon-ec2

我在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

我做错了吗?但我应该做什么和做什么?

2 个答案:

答案 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> startservice <your-app> stop < / p>

此处有更多信息:http://www.playframework.com/documentation/2.2.x/ProductionDist

此外,请务必查看最新的播放文档,因为它经常更新。