nginx+Passenger (Apache+Passenger から) に移行中の古い Rails 2.3 アプリがあります。Nginx は SSL 用に構成されており、正常に機能しているように見えますが、Rails アプリから 302 リダイレクト ループに陥っています。
Rails アプリは、リクエストが ssl ではないと判断します (request.ssl? が false に評価されている必要があります)。production.log では、各ログ エントリにリクエストが http として表示されます。SSLRequirement プラグインを無効にすると、リダイレクト ループがなくなります。ただし、絶対 URL を作成するときにプロトコルを正しく設定できるように、Rails アプリが https 要求を検出していることを確認したいと思います。
以前の Apache+Passenger セットアップについて言及した唯一の理由は、SSLRequirement プラグインがその構成で適切に機能していたからです。
仮想ホストの nginx 構成は次のようになります。
server {
listen 443 ssl;
server_name new.example.com;
root /home/user/railsapps/example-setup/public;
passenger_enabled on;
ssl_certificate /etc/nginx/ssl/2013/example.com.chained.crt;
ssl_certificate_key /etc/nginx/ssl/2013/example.key;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
}