如何配置 Rails 5.2.1 服务器监听所有接口?

aum*_*n26 5 ruby ruby-on-rails ruby-on-rails-5.2

我对 RoR 和学习还很陌生,所以如果我有后续问题,请耐心等待。我们的 Rails (v 5.0.2) 应用程序配置为侦听具有以下配置的所有接口config/boot.rb

require 'rails/commands/server'
module Rails
  class Server
    def default_options
      # make rails listen on all interfaces (accept connections from any ip)
      super.merge(Host: '0.0.0.0', Port: 1234)
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

我最近将 Rails 从5.0.2to升级5.2.1,当我运行时rails s,我得到:

/Users/aum/rails_app/config/boot.rb:5:in `require': cannot load such file -- rails/commands/server (LoadError)
    from /Users/aum/rails_app/config/boot.rb:5:in `<top (required)>'
    from bin/rails:8:in `require_relative'
    from bin/rails:8:in `<main>'
Run Code Online (Sandbox Code Playgroud)

所以,我更新了'require'rails/commands/server/server_command现在我得到

rails s
/Users/aum/.rvm/gems/ruby-2.3.3@rails_app/gems/railties-5.2.1/lib/rails/commands/server/server_command.rb:110:in `<module:Command>': uninitialized constant Rails::Command::Base (NameError)
Did you mean?  Base64
  from /Users/aum/.rvm/gems/ruby-2.3.3@rails_app/gems/railties-5.2.1/lib/rails/commands/server/server_command.rb:109:in `<module:Rails>'
  from /Users/aum/.rvm/gems/ruby-2.3.3@rails_app/gems/railties-5.2.1/lib/rails/commands/server/server_command.rb:11:in `<top (required)>'
  from /Users/aum/rails_app/config/boot.rb:5:in `require'
  from /Users/aum/rails_app/config/boot.rb:5:in `<top (required)>'
  from bin/rails:8:in `require_relative'
  from bin/rails:8:in `<main>'
Run Code Online (Sandbox Code Playgroud)

我不确定如何/在何处指定 Rails 5.2.1 中的主机和端口,因为default_options这里的定义也发生了变化:https : //github.com/rails/rails/blob/master/railties/lib/rails/commands /server/server_command.rb#L68

注意:我可以启动服务器,rails s -b 0.0.0.0 -p 1234但这不是我想要做的。

在此先感谢您的帮助!

ano*_*rmh 5

假设您使用的是puma,它是 Rails 5 的默认 HTTP 服务器,绑定选项定义在config/puma.rb

bind 'tcp://0.0.0.0:3000'
Run Code Online (Sandbox Code Playgroud)