poundのsslとの併用


poundでsslを使った場合でも、railsからはpoundがhttpでアクセスしてくるように見えるので、
redirect_toやurl_forが生成するURLのプロトコルはhttpになってしまう。
プロトコルを変更するには、コントロールでdefault_url_optionsをオーバーライドする。

def default_url_options(options)
  {:protocol => "https://"}
end

poundでバックエンドサーバへのリクエストヘッダにX-Forwarded-Protoをつけて、
SSLでのリクエストだよとmongrelに教えてあげることができる。
X-Forwarded-Protoがhttpsの場合、redirect_toやurl_forが生成するURLのプロトコル
httpsになる。よって、上で書いた {:protocol => "https://"} の処理は不要。

pound.cfg

AddHeader "X-Forwarded-Proto: https" 
HeadRemove "X-Forwarded-Proto"