Rails -v 4.1.1 Ruby -v 2.2.1
我在一个AWS EC2实例上有2个rails应用程序。一个应用程序,我可以在Webrick上启动:
rails server
然后,我可以通过以下URL远程访问该应用程序:
http://[public_ip]:3000
第二个应用程序,我必须提供-b和-p选项。如果没有在http://[public_ip]:3000
访问应用程序的选项,则会给我:
This webpage is not available
connection attempt to [public_ip] was rejected. The website may be down, or your network may not be properly configured.
适用于第二个应用的唯一服务器启动时间是:
rails s -b 0.0.0.0 -p 3000
然后我可以在http://[public_ip]:3000
访问第二个应用。第二个应用程序是我在服务器上创建的全新应用程序。第一个应用程序是我从现有应用程序检出的代码。
如何让第二个应用与第一个应用相同?
答案 0 :(得分:0)
在Rails 4.2之前,rails s
命令的默认绑定主机为0.0.0.0
。从Rails 4.2开始,它是localhost
。所以难怪你在新应用中遇到这个问题。
如果您希望新应用自动开始0.0.0.0
,请将其添加到config/boot.rb
:
require 'rails/commands/server'
module Rails
class Server
def default_options
super.merge(Host: '0.0.0.0', Port: 3000)
end
end
end
基于this answer。