Is there a way to stop Rails' built-in server from listening on 0.0.0.0 by default?

前端 未结 3 1802
一生所求
一生所求 2020-12-17 21:34

I do a lot of web development on untrusted networks (coffeeshops, the neighbors\' open wifi, DEF CON), and I get twitchy when random, assuredly buggy software (my Rails app

相关标签:
3条回答
  • 2020-12-17 21:44

    Use the --binding=ip parameter:

    rails s --binding=127.0.0.1
    

    https://github.com/rails/rails/blob/master/railties/lib/rails/commands/server.rb

    0 讨论(0)
  • 2020-12-17 21:50

    You can update the /script/rails file in you rails app to reflect the following:

    #!/usr/bin/env ruby
    # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
    
    APP_PATH = File.expand_path('../../config/application',  __FILE__)
    require File.expand_path('../../config/boot',  __FILE__)
    
    # START NEW CODE
    require "rails/commands/server"
    module Rails
      class Server
        def default_options
          super.merge({
            :Host        => 'my-host.com',
            :Port        => 3000,
            :environment => (ENV['RAILS_ENV'] || "development").dup,
            :daemonize   => false,
            :debugger    => false,
            :pid         => File.expand_path("tmp/pids/server.pid"),
            :config      => File.expand_path("config.ru")            
          })
        end
      end
    end
    # END NEW CODE
    
    require 'rails/commands'
    

    This will bind the rails app to my-host.com when it starts up. You can still override the options from the command line.

    I am not sure why this is not reflected in the Rails::Server API docs. You can have a look at https://github.com/rails/rails/blob/master/railties/lib/rails/commands/server.rb to see the server implementation.

    Note that in Rails 4, the /script/rails file has been moved to /bin/rails.

    0 讨论(0)
  • 2020-12-17 22:10

    There's no way to change it globally, you'll have to use -b.

    rails s -b <ip address>

    0 讨论(0)
提交回复
热议问题