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