この記事はアピリッツの技術ブログ「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