最近我创build了一个新的ec2实例(快速启动),我试图部署我的玩! 应用程序安全组可以访问端口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.
这意味着当我运行时使用80端口
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
我搜查了所有的networking,但我没有弄明白,请帮助我!
注:我只是解决这个我所要做的就是用sudo启动它。
由于您绑定到低于1024的端口,因此必须以root权限启动。
尝试像这样:
sudo play start 80
要在EC2上进行部署,您应该使用以下命令在您的本地计算机上创build一个独立版本的应用程序:
play dist
然后,使用scp将生成的.zip复制到EC2实例,使用unzip将其解压缩。
然后你会想运行你的应用程序,如下所示:
sudo nohup yourAppName-version/bin/yourAppName -Dhttp.port=80
sudo为了能够绑定到1024以下的端口。
nohup为了能够退出SSH会话,而不发送HUP信号到您的播放应用程序。
yourAppName-version / bin / yourAppNamereplace为您的应用程序的名称和版本应该是脚本的位置。
-Dhttp.port是绑定到给定端口的选项。
附加信息:您应该考虑添加-J-Xms128M -J-Xmx512m以避免RAM分配问题(我使用微型实例,根据您的需要进行调整)。