最近の運用は、ほとんど 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