2011-12-12 1 views
9

信頼できないネットワーク(coffeeshops、隣人のオープンwifi、DEF CON)でたくさんのWeb開発をしていて、無作為にバグの多いソフトウェア(開発中の私のRailsアプリケーション)が0.0のポートをバインドすると、すべてのコーナーからリクエストを開始します。私はサーバに-bオプションを使ってバインディングのアドレスを指定できることを知っていますが、それ以外のことを言わない限り、デフォルトでグローバルに変更したいのです。もちろん、私は接続をブロックするいくつかの種類のファイアウォールを実行することもできますが、最初は聞き取れない方がいいです。 '.railsrc'ファイルなどがありますか?少なくともプロジェクトごとの設定ファイルですが、いくつかのグローバル設定ファイルが必要です。これを使用すると、サーバーをデフォルトで127.0.0.1にのみバインドすることができます。Railsのビルトインサーバがデフォルトで0.0.0.0でリッスンするのを止める方法はありますか?

+2

ご使用のOSがエイリアスをサポートしている場合は、代わりにそのエイリアスを使用してサーバーを実行してください。 –

答えて

4

あなたはあなたの中に/スクリプト/レールファイルを更新することができますが、以下を反映するためにアプリをレール:

#!/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' 

これは、私の起動時に-host.com。コマンドラインからオプションをオーバーライドすることはできます。

これがなぜRails :: Server APIドキュメントに反映されているのかわかりません。 https://github.com/rails/rails/blob/master/railties/lib/rails/commands/server.rbを見ると、サーバーの実装を確認できます。

Rails 4では、/ script/railsファイルが/ bin/railsに移動されていることに注意してください。

+0

これはまさに私が探していたものです - ありがとう! –

1

グローバルに変更する方法はありません。-bを使用する必要があります。

rails s -b <ip address>

+1

On Rails 2: 'スクリプト/サーバー-b ' –

5

--binding=ipパラメータを使用します

rails s --binding=127.0.0.1 

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

+1

私はそのオプションを知っています - 私はそれをグローバルに変更できるようにしたいので、毎回それを指定する必要はありませんサーバ。 –

+0

https://github.com/rails/rails/blob/master/railties/lib/rails/commands/server.rbで定義されている 'Rails :: Server :: Options#parse! 'のmonkeypatchを実行することができますアプリケーションを編集したり、システム上のgemでそのファイルを編集したりすることもできます。 – clyfe

関連する問題