branch4 Blog

Internet development with every single possibility.

[Infra] DNAT環境下でのrails + Devise

| Comments

railsとdeviseを組み合わせて使うことはよくあることです。たぶん。
んで、DNAT環境下で使うと、最初に認証できなかったら、認証画面に
リダイレクトする、っていうとこで困っちゃう。というか僕は困っちゃった。

deviseのサイトに、認証失敗時のリダイレクトを任意画面にする、的な方法が
出てたけど、そこだけが対応箇所なのかもようわからんので、nginx側で、
30x系リダイレクト時の、Locationヘッダを書き換える方法にしてみた話。
いえ、全然難しくないんだけどね。。。

nginx.confあたりに、

    
      proxy_redirect http://xxx.yyy.jp/ http://xxx.yyy.jp:10080/;
    
って書く。するとHTTP responseで、

Location: http://xxx.yyy.jp/

を受信したときに、

Location: http://xxx.yyy.jp:10080/

に書き換えてくれますよ、って話。
今度わかりやすいように図解もつけようかな。
今日は眠いからこれで終了。

Comments