lvh.meの備忘録

ローカルでサブドメインからRailsサーバーにアクセスしたく、lvh.meを使うところまでは覚えていたんだ。。。 だが記憶が曖昧で「何をどう設定するんだっけ?」と謎の悩みが出たので自分用にまとめておく。

lvh.meとは?

全く難しいことはなく、ただ単にローカル環境で127.0.0.1(ローカルホスト)へ向かうドメイン

localhost:3000railsサーバーを動かせば、http://lvh.me:3000でアクセスできるし、サブドメインをつけてhttp://hogehoge.lvh.me:3000でもアクセスが可能(設定必要あり)

Rails6では設定が必要

Rails6からはドメインホワイトリストに入れないとアクセスできない。 以下のエラーを吐き出す。

Blocked host: lvh.me
To allow requests to lvh.me, add the following to your environment configuration:
config.hosts << "lvh.me"

DNSリバインディグ攻撃を防ぐために追加されたらしい。 なので、development.rbに次のように追加すれば問題なく動く。

#development.rb
Rails.application.config.hosts << 'lvh.me'

lvh.meについてはスッキリ。当時は別のことも絡み、いろいろごっちゃになってたらしい。nginxと組み合わせた記憶があるので、nginxあたりの知識が怪しい可能性が。

そしてDNSバインディング攻撃ってなんだろ。。。

逆に学ぶことが増えていい!

参考:

What is lvh.me? - quora

Rails 6 にしたら Blocked host: というエラーが発生した場合の対処 - Lonely Mobiler

Rails 6にDNSリバインディング攻撃防止機能が追加された(翻訳)- techRacho