2013-04-05 4 views
2

Я настроил Django за Nginx с Gunicorn, но когда я пытаюсь войти в админку, я получаю:Джанго + Gunicorn + Nginx = CSRF печенье не установлено

Forbidden (403) 
CSRF verification failed. Request aborted. 

Reason given for failure: 
CSRF cookie not set. 

Это странно, потому что он отлично работает, если я запускаю его локально. Однако, за nginx он терпит неудачу, когда я запускаю его, используя «python manage.py runningerver 0.0.0.0:8000» и «python manage.py run_gunicorn».

settings.py:

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
    # CORS SUPPORT 
    'corsheaders.middleware.CorsMiddleware', 
    # Uncomment the next line for simple clickjacking protection: 
    # 'django.middleware.clickjacking.XFrameOptionsMiddleware', 
) 

nginx.conf:

server { 
     listen 8080; 
     server_name example.com; 
     access_log /var/log/nginx/example.com.access.log; 
     error_log /var/log/nginx/example.com.error.log info; 

     keepalive_timeout 5; 
     location /assets/grappelli/ { 
       alias /var/www/example.com/virtualenv/lib/python2.6/site-packages/grappelli/static/grappelli/; 
     } 

     location /assets/ { # STATIC_URL 
       alias /var/www/example.com/PopcornHour/assets/; # STATIC_ROOT 
       expires 30d; 
     } 

location/{ 
     proxy_pass_header Server; 
     proxy_set_header Host $http_host; 
     proxy_redirect off; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Scheme $scheme; 
     proxy_connect_timeout 10; 
     proxy_read_timeout 10; 
     proxy_pass http://localhost:8000/; 
    } 
    # what to serve if upstream is not available or crashes 
    error_page 500 502 503 504 /media/50x.html; 

} 

Большое спасибо за вашу помощь!

ответ

1

Я выяснил, почему это было неудачно - хотя у меня есть Varnish для этого домена, он все еще испортился с заголовками и кукисами, сейчас он отключен :)

Смежные вопросы