Ruby on rails Rails Webrick服务器默认IP和端口
轨道-V4.1.1 Ruby-v2.2.1 我在一个AWS EC2实例上有两个rails应用程序。一个应用程序,我可以在Webrick上启动:Ruby on rails Rails Webrick服务器默认IP和端口,ruby-on-rails,amazon-ec2,default,webrick,Ruby On Rails,Amazon Ec2,Default,Webrick,轨道-V4.1.1 Ruby-v2.2.1 我在一个AWS EC2实例上有两个rails应用程序。一个应用程序,我可以在Webrick上启动: rails server 然后,我可以通过以下URL远程访问该应用程序: http://[public_ip]:3000 第二个应用程序,我必须提供-b和-p选项。如果没有访问http://[public\u ip:3000上的应用程序的选项,我会: This webpage is not available connection attempt
rails server
然后,我可以通过以下URL远程访问该应用程序:
http://[public_ip]:3000
第二个应用程序,我必须提供-b和-p选项。如果没有访问http://[public\u 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\u ip]:3000访问第二个应用程序。第二个应用是我在服务器上创建的全新应用。第一个应用是我从现有应用签出的代码。
如何使第二个应用程序的行为与第一个应用程序相同?在Rails 4.2之前,Rails s命令的默认绑定主机是
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
基于。我编辑了我的帖子以显示版本。考虑到我使用的是4.2之前的版本,没有选项的服务器启动应该可以工作。此外,第一个/现有应用程序的boot.rb没有您提供的代码段,但我可以在默认IP和端口上访问它,而无需启动选项。根据v4.1.1中的这一点,默认主机是
0.0.0.0
。你确定Rails是4.1.1吗?