その他
    ホーム技術発信DoRubyRails 4.2 にアップデートすると他のマシンからサーバーにアクセスできなくなる?

    Rails 4.2 にアップデートすると他のマシンからサーバーにアクセスできなくなる?

    この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

    一瞬ハマったのでメモとして書き残します。

     Rails 4.2 にアップデートすると他のマシンからサーバーにアクセスできなくなる?

    「rails s」で起動するサーバーの IP アドレスはもともとは「0.0.0.0」でしたが、

    Rails 4.2 から「localhost」になっているようです。

    この影響で他のマシンや、ホスト OS から立ち上げたサーバーにアクセスできない!

    ということがあります。

     解決方法

    いままで通りにアクセスできるようにするには簡単で、「rails s -b 0.0.0.0」のような

    オプションを指定するだけです。オプションの詳細は「rails –help」で確認できます。

    rails s
    #=> 'http://localhost:3000' で起動するため外部からアクセス不可
    
    rails s -b 0.0.0.0
    #=> 'http://0.0.0.0:3000' となり、いままで通りアクセス可能
    

     どこで変わったの?

    Rails のサーバー部分の実装に使われている Rack に、デフォルト IP の変更があったみたいです。単純に「その方が安全だよね」という話ですね。

    参考: https://github.com/rack/rack/commit/28b014484a8ac0bbb388e7eaeeef159598ec64fc