如何将Rails应用程序部署到AWS

时间:2015-12-12 07:35:53

标签: ruby-on-rails apache amazon-web-services amazon-ec2

我正在尝试在AWS云中托管Rails应用程序,其中我有一个EC2实例和apache和mysql。在这里,我上传了我的应用程序,但我无法将其与IP绑定。对于测试,我使用此博客文章https://www.digitalocean.com/community/tutorials/how-to-deploy-a-rails-app-with-unicorn-and-nginx-on-ubuntu-14-04作为参考。 当我尝试运行此命令时:

RAILS_ENV=production rails server --binding=server_public_IP

我收到此错误:

 /home/ubuntu/.rbenv/versions/2.2.3/lib/ruby/2.2.0/socket.rb:206:in `bind': Cannot assign requested address - bind(2) for 52.24.103.139:3000 (Errno::EADDRNOTAVAIL)

是否有人帮助我了解这个问题是什么以及如何在AWS apache上部署它。

2 个答案:

答案 0 :(得分:1)

在AWS中,机器未直接分配IP,即使用NAT路由它。因此,您无法使用公共IP直接启动rails服务器。

启动服务器只需在没有绑定参数rails s production

的情况下启动它

或者你可以使用0.0.0.0来绑定你的服务器,这将在所有接口上启动你的轨道。

提示:对于生产,理想情况下,您应该使用某些Web服务器,例如使用passenger / unicorn的nginx / apache

答案 1 :(得分:0)

从错误看,它说不能与ipadd 52.24.103.139:3000

绑定

我建议打开一个' custom TCP port 3000'并尝试再次运行相同的东西。

可能是您的应用正在使用端口3000而不是80。 希望有所帮助。