title: how can I fix a redirect loop when using Devise with SSL on staging server?
body: <p>I've installed a self signed cert on my staging server. I'm using that to test my ssl set up. I'm using Devise 1.5 for logins and following <a href="https://github.com/plataformatec/devise/wiki/How-To%3a-Use-SSL-%28HTTPS%29" rel="nofollow">this article on the devise wiki for ssl / http config</a>. </p>
  
  <p>The docs say: </p>
  
  <blockquote>
    <p>And make sure to enable SSL on the server (Nginx, Apache, etc.). If
    the servers are not configured properly, Rails will not recognize the
    request as SSL (even if it is), and cause an infinite redirect loop.</p>
  </blockquote>
  
  <p>Ok that sure looks like what is happening, but I strongly suspect I don't need to 'flip the switch' on SSL (this is an EngineYard instance). I have an SSL cert installed on the server.</p>
  
  <p>I've checked the file <code>/etc/nginx/servers/MyAppName.ssl.conf</code> and it has these lines: </p>
  
  <pre><code>  ssl on;
    ssl_certificate /etc/nginx/ssl/MyAppName.crt;
    ssl_certificate_key /etc/nginx/ssl/MyAppName.key;
    ssl_prefer_server_ciphers on;
    ssl_protocols  SSLv3 TLSv1;
  </code></pre>
  
  <p>So that looks ... right? I don't want to mess with it that's for sure. </p>
  
  <p>My RegistrationsController has <code>force_ssl :only =&gt; [:new, :create, :edit, :update]</code>, so all authentication actions should be forcing ssl as far as I can tell. SessionsController has <code>force_ssl :only =&gt; [:new, :create]</code>.</p>
  
  <p>I realize that there's a lot of moving parts here, but what should I look at next? </p>
  
  <p>Here's the rails logs: </p>
  
  <pre><code>Started GET "/users/sign_in" for 98.246.164.160 at 2012-02-29 20:47:39 +0000
  [29 Feb 20:47 23166   INFO]   Processing by Devise::SessionsController#new as HTML
  [29 Feb 20:47 23166  DEBUG] Parameters: {"action"=&gt;"new", "controller"=&gt;"devise/sessions"}
  [29 Feb 20:47 23166   INFO] Redirected to https://ec2-xxx-xxx-106-255.us-west-2.compute.amazonaws.com/users/sign_in
  [29 Feb 20:47 23166   INFO] Completed 301 Moved Permanently in 1ms
  [29 Feb 20:47 23166   INFO] 
  
  Started GET "/users/sign_in" for 98.246.164.160 at 2012-02-29 20:47:39 +0000
  [29 Feb 20:47 23166   INFO]   Processing by Devise::SessionsController#new as HTML
  [29 Feb 20:47 23166  DEBUG] Parameters: {"action"=&gt;"new", "controller"=&gt;"devise/sessions"}
  [29 Feb 20:47 23166   INFO] Redirected to http://ec2-xxx-xxx-106-255.us-west-2.compute.amazonaws.com/users/sign_in
  [29 Feb 20:47 23166   INFO] Completed 302 Found in 1ms
  [29 Feb 20:47 23166   INFO] 
  
  Started GET "/users/sign_in" for 98.246.164.160 at 2012-02-29 20:47:39 +0000
  [29 Feb 20:47 23166   INFO]   Processing by Devise::SessionsController#new as HTML
  [29 Feb 20:47 23166  DEBUG] Parameters: {"action"=&gt;"new", "controller"=&gt;"devise/sessions"}
  [29 Feb 20:47 23166   INFO] Redirected to https://ec2-xxx-xxx-106-255.us-west-2.compute.amazonaws.com/users/sign_in
  [29 Feb 20:47 23166   INFO] Completed 301 Moved Permanently in 1ms
  </code></pre>