Railsのredirect_toでhttpsに行かない件(with pound)

 最近の運用は、ほとんど lighttpd + Pound でやってます。速度面で lighttpd の方が有利。 ab でベンチとってみても lighttpd の方が3割程高速な様子。Pound は設定も柔軟でSSLのラッパも出来るので大変よい感じです。

 さて、Railsにはssl_requirement とか SSLに関するプラグインもあったりします。request.ssl? でリクエストがsslかどうか取れたりもするので簡単に切替は出来るんですが、Poundと組み合わせるとどうも redirect_to で https に飛ばしても http に書き変わってしまう(´・ω・`) 調べてもそんな記事がちらほら出てきます。

 Poundを挟んでも、request.ssl? は使えます。でも、自分で https に redirect_to してもやっぱhttp に行っちゃうので Poundで設定。

 やりたいことは、あるURLのページだけセキュアにしたいので https に飛ばすっていう処理。

 HTTPで来たアクセスのうち、該当するURLを正規表現で書いて https にリダイレクトする処理を書いてあげればOK。ちなみに、Redirect “http://ecpplus.net” とか書いておくと、tdl 以下のディレクトリ構造はそのまま持ち越して https に飛んでくれるので、特に何も考える必要なし。素晴らしい(´∀`)

 けど、根本的な解決になってないので方法を調べる必要がある。

ListenHTTPS
  Address 192.168.100.100
  Port 443

   Service
    HeadRequire "Host: ecpplus.net"
    BackEnd
      Address 127.0.0.1
      Port 8000
      Timeout 120
    End
  End
End

ListenHTTP
  Address 192.168.100.100
  Port 80

  Service
    HeadRequire "Host: ecpplus.net"
    URL "/(blog|diary)"
    Redirect "https://ecpplus.net"
  End

  Service
    HeadRequire "Host: ecpplus.net"
    BackEnd
      Address 127.0.0.1
      Port 8000
      Timeout 120
    End
  End
End
Railsのredirect_toでhttpsに行かない件(with pound)