title: Django admin authentication failure
body: <p>logging into django admin fails when 'log in' button is pressed first
  time, but pressing "back" and "log in' again - logs the user in
  successfully.</p>
  
  <p>I am deploying Django app with zc.buildout here, with a setup similar
  to what is described here <a href="http://www.meppum.com/2009/jan/17/installing-django-ubuntu-intrepid/" rel="nofollow noreferrer">http://www.meppum.com/2009/jan/17/installing-django-ubuntu-intrepid/</a>.
  Nginx (listening on 127.0.0.1:8003) is running beyond Apache(listening
  on 127.0.0.1:8001), configurations of both servers are provided at the
  end of the post. I'm accessing my django app as 127.0.0.1:8003/.</p>
  
  <p>So, 127.0.0.1:8003/admin/ opens django admin login form.
  1)Entering username/pass, pressing "log in" redirects to (for some unknown reason?) 127.0.0.1/
  admin, therefore ends up with nothing, as there is no server listening
  on 80 port.
  HTTP trace (after clicking login in: <a href="http://127.0.0.1:8003/admin/" rel="nofollow noreferrer">http://127.0.0.1:8003/admin/</a>)</p>
  
  <pre><code>POST /admin/ HTTP/1.1
  Host: 127.0.0.1:8003
  User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.17) Gecko/2010010604 Ubuntu/9.04 (jaunty) Firefox/3.0.17
  Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  Accept-Language: en-us,en;q=0.5
  Accept-Encoding: gzip,deflate
  Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
  Keep-Alive: 300
  Connection: keep-alive
  Referer: http://127.0.0.1:8003/admin/
  Cookie: JSESSIONID=0D287C17FBA82223AB7D5884EA534967; sessionid=c65c7af8ebde9e6bdf9c739a731d376b
  Content-Type: application/x-www-form-urlencoded
  Content-Length: 55
  username=to&amp;password=password&amp;this_is_the_login_form=1
  
  HTTP/1.x 302 FOUND
  Server: nginx/0.8.29
  Date: Mon, 01 Feb 2010 10:27:44 GMT
  Content-Type: text/html; charset=utf-8
  Connection: keep-alive
  Expires: Mon, 01 Feb 2010 10:27:44 GMT
  Vary: Cookie
  Etag: "d41d8cd98f00b204e9800998ecf8427e"
  Cache-Control: max-age=0
  Set-Cookie: sessionid=9db437da69c359136786696f90ba89f2; expires=Mon, 15-Feb-2010 10:27:44 GMT; Max-Age=1209600; Path=/
  Last-Modified: Mon, 01 Feb 2010 10:27:44 GMT
  Location: http://127.0.0.1/admin/
  Content-Length: 0
  </code></pre>
  
  <p>2)Pressing browser's back , and 'log in' button once again  (or
  pressing browser's 'back' and 'refresh') logs in succesfully. HTTP trace:</p>
  
  <pre><code>POST /admin/ HTTP/1.1
  Host: 127.0.0.1:8003
  User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.17) Gecko/2010010604 Ubuntu/9.04 (jaunty) Firefox/3.0.17
  Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  Accept-Language: en-us,en;q=0.5
  Accept-Encoding: gzip,deflate
  Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
  Keep-Alive: 300
  Connection: keep-alive
  Referer: http://127.0.0.1:8003/admin/
  Cookie: JSESSIONID=0D287C17FBA82223AB7D5884EA534967; sessionid=9db437da69c359136786696f90ba89f2
  Content-Type: application/x-www-form-urlencoded
  Content-Length: 55
  username=to&amp;password=password&amp;this_is_the_login_form=1
  
  HTTP/1.x 200 OK
  Server: nginx/0.8.29
  Date: Mon, 01 Feb 2010 10:52:02 GMT
  Content-Type: text/html; charset=utf-8
  Transfer-Encoding: chunked
  Connection: keep-alive
  Expires: Mon, 01 Feb 2010 10:52:02 GMT
  Vary: Cookie
  Etag: "3355a46fb32d7cb6ab21262c359d9eec"
  Cache-Control: max-age=0
  Last-Modified: Mon, 01 Feb 2010 10:52:02 GMT
  </code></pre>
  
  <p>It looks like that's a cookie-related issue, but, i guess, the root of
  the problem might as well lie in the apache and/or nginx config as well.</p>
  
  <p>Any ideas how to make the admin log-in form work immediately?</p>
  
  <p>Cheers!</p>
  
  <p>to</p>
  
  <p>P.S.configs:</p>
  
  <p>apache vhost configuration:</p>
  
  <pre><code>&lt;VirtualHost *:8001&gt;
  
      &lt;Directory /home/toinbis/Desktop/programming/project/runtime/
  htdocs/django_wsgi/&gt;
          Order deny,allow
          Allow from all
      &lt;/Directory&gt;
  
      WSGIDaemonProcess tsd user=www-data group=www-data threads=25
      WSGIProcessGroup tsd
  
      WSGIScriptAlias / /home/toinbis/Desktop/programming/project/
  runtime/htdocs/django_wsgi/djproject.wsgi
  
      LogLevel warn
      ErrorLog  /home/toinbis/Desktop/programming/project/runtime/logs/
  apache_tsd_error.log
      CustomLog /home/toinbis/Desktop/programming/project/runtime/logs/
  apache_tsd_access.log combined
  
      ServerName localhost
  &lt;/VirtualHost&gt;
  </code></pre>
  
  <p>nginx configuration:</p>
  
  <pre><code>daemon off;
  #user www-data;
  worker_processes  2;
  
  error_log  /home/toinbis/Desktop/programming/project/runtime/logs/
  nginx_general_error.log;
  pid        /home/toinbis/Desktop/programming/project/runtime/var/pids/
  nginx.pid;
  
  events {
      worker_connections  1024;
      #server_names_hash_bucket_size: 128;
  
  }
  
  http {
      include       /home/toinbis/Desktop/programming/project/runtime/
  etc/nginx_conf/mime.types;
      default_type  application/octet-stream;
  
      access_log  /home/toinbis/Desktop/programming/project/runtime/logs/
  nginx_access.log;
      error_log   /home/toinbis/Desktop/programming/project/runtime/logs/
  nginx_error.log;
  
      sendfile        on;
      tcp_nopush     on;
  
      #keepalive_timeout  0;
      keepalive_timeout  2;
      tcp_nodelay        on;
  
      server_names_hash_bucket_size 128;
      #server_name_hashes 128;
      gzip  on;
      gzip_comp_level 2;
      gzip_proxied any;
      gzip_disable "MSIE [1-6]\.(?!.*SV1)"; #iš ubuntu
      gzip_types text/plain text/css application/x-javascript text/xml
  application/xml application/xml+rss text/javascript;
  
  upstream backend {
    server 127.0.0.1:8001;
  
  }
  
  server {
              listen   8003;
              server_name localhost;
  
              error_log /home/toinbis/Desktop/programming/project/
  runtime/logs/project_nginx_error.log;
              access_log /home/toinbis/Desktop/programming/project/
  runtime/logs/project_nginx_access.log;
  
              location / {
                          proxy_pass  http://backend/;
                          include     /home/toinbis/Desktop/programming/
  project/runtime/etc/nginx_conf/nginx_proxy_1.conf;
              }
  
              location  /media/ {
                          root /home/toinbis/Desktop/programming/project/
  src/tsd/core/;
              }
  
  }
  }
  </code></pre>
  
  <p>cheers,
  to </p>