无法在 ec2 上启动 play! 服务器(play! 框架)

无法在 ec2 上启动 play! 服务器(play! 框架)

最近我创建了一个新的 ec2 实例(快速启动),并尝试部署我的 Play!应用程序安全组允许访问端口 80 和端口 22(SSH),但是当我运行时:

play start 80

它给了我这个

[error] org.jboss.netty.channel.ChannelException: Failed to bind to: /0.0.0.0:80
[error] Use 'last' for the full log.

这意味着当我运行

netstat -tlnp 

我明白

    Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      3692/sendmail       
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      3653/sshd           
tcp        0      0 :::22                       :::*                        LISTEN      3653/sshd 

我搜索了整个网络但我没有弄明白,请帮帮我!

笔记 :我刚刚解决了这个问题,我要做的就是用 sudo 启动它。

答案1

由于您绑定到 1024 以下的端口,因此必须以 root 权限启动。

尝试以下方法:

sudo play start 80

答案2

要在 EC2 上部署,您应该使用以下命令在本地计算机中创建应用程序的独立版本:

play dist

然后使用 scp 将生成的 .zip 复制到您的 EC2 实例,使用 unzip 解压缩。

然后你可能想像这样运行你的应用程序:

sudo nohup yourAppName-version/bin/yourAppName -Dhttp.port=80

须藤以便能够绑定到 1024 以下的端口。

禁止为了能够退出 ssh 会话而不向您的 play 应用程序发送 HUP 信号。

您的应用程序名称-版本/bin/您的应用程序名称用您的应用程序的名称和版本替换您的脚本所在的位置。

-Dhttp.端口是绑定到给定端口的选项。


附加信息:您应该考虑添加 -J-Xms128M -J-Xmx512m 以避免 RAM 分配问题(我使用微型实例,请根据您的需要进行调整)。

相关内容