rails + unicorn + nginx でリダイレクトループにはまりました

Ruby on Rails

こんにちは。じじグラマーのカン太です。週末プログラマーをしています。

Ruby on Rails + unicorn + nginx で開発したアプリケーションをSSLに対応しようとしたところ、リダイレクトループという現象に陥りました。

「このページは動作していません sample.com でリダイレクトが繰り返し行われました。 Cookie を削除してみてください.」

ブラウザによってメッセージは異なります。もちろんキャッシュをクリアしようがサーバーを再起動しようが現象は変わりません。Chatgptさんの言われるがまま、いろいろな設定をいじくりまわしても変わりません。ふと思いついてGoogle先生に聞いてみたところ、何とか解決しました。

nginxの設定ファイル「/etc/nginx/nginx.conf」(使用状況によってパス、ファイル名は異なります)のunicornに関する記述に、以下のように追加してあげる必要がありそうです。

    location @unicorn {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;  # ここに追加
        proxy_pass http://unicorn;
    }

3日ほどハマりました。最近は、Chatgptさんに聞いてわからなくなったら、もうお手上げ、ってな感じになっています。便利なもの使うと人間の能力はすぐに退化していくものみたいです。

コメント