Rails にて、 http://123-456-789-123
みたいな、 IP アドレスを - でつなげたような
アドレスにリダイレクトされてつらいことになったので、解決方法をメモしておきます。
発生してた状況は、下のようなもの
- nginx を SSL アクセラレータとして使用中
- 上に + で、 Rails の静的コンテンツの配信もしてる
この時、例えばログイン後の処理などで、リダイレクトを行うと、
http://123-456-789-123
のようなアドレスへとリダイレクトされてしまいました。
(https://123-456-789-123
ではありません)
↓ のような感じです。
class UsersController < ApplicationController def login # ... redirect_to users_home_url end end
ということで、次のように変更すると、起こらなくなりました。
- Rails 側で、
force_ssl = true
と設定する - nginx からのヘッダーに
X-Forwarded-Proto: https
を追加
結局あんまり原因はわかってないけど、これで治ったので、とりあえずはよしということで。