BLOGTIMES
2015/04/13

リバースプロキシの裏にある Redmine のリダイレクトが HTTPSにならないときは

  httpd  redmine 
このエントリーをはてなブックマークに追加

Apache + Unicorn + Redmine という組み合わせで運用していて、リバースプロキシの Apache に HTTPS -> HTTP の変換をやらせるように設定してみたのですが、Redmine のリダイレクトが HTTP になっていることがあって HTTPS だけで運用しようとすると HTTP にリダイレクトされたときにサーバから応答が帰ってこないように見えるので困ってしまいました。

何か良い方法がないかと思って検索してみると、意外とはまりやすいポイントのようで、解決方法をいくつか見つけることができました。大きく分けるとバックエンドが投げる Location ヘッダを無理矢理書き換える方法か、バックエンド側に X_FORWARDED_PROTO というヘッダを投げてリバースプロキシの外側が HTTPS であるとバックエンドに解釈してもらうという方法があるようです。今回はどちらかというと根本的な対応に思える後者の対応を取ることにしました。こちらの方法であれば HTTP 側には影響を与えないので、そのまま使い続けることができます。

やり方としては以下の行を Apache の設定ファイルに書き込むだけと簡単です。

RequestHeader set X_FORWARDED_PROTO 'https'

参考


    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/7539
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン