我正在尝试在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上部署它。
答案 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
。
希望有所帮助。