未设置Django、nginx和gunicorn csrf cookie

未设置Django、nginx和gunicorn csrf cookie,django,docker,nginx,gunicorn,Django,Docker,Nginx,Gunicorn,我已经安装了nginx、gunicorn和Django,运行在docker容器上。Nginx用作反向代理。 一切正常,但对于POST方法,我得到的错误是禁止(未设置CSRF cookie)。。同样的配置在本地运行良好,但在生产环境(aws上的ec2)中,这不起作用 以下是nginx配置: upstream web { ip_hash; server web:8000; } server { location / { alias /src/frontend/dist/;

我已经安装了nginx、gunicorn和Django,运行在docker容器上。Nginx用作反向代理。 一切正常,但对于POST方法,我得到的错误是
禁止(未设置CSRF cookie)。
。同样的配置在本地运行良好,但在生产环境(aws上的ec2)中,这不起作用

以下是nginx配置:

upstream web {
  ip_hash;
  server web:8000;
}

server {

  location / {
      alias /src/frontend/dist/;
      try_files $uri $uri/ /index.html;
  }

  location /static {
    alias /src/static/;
    try_files $uri =404;
  }

  # works locally, but doesn't work in prodcution on ec2
  location /api/ {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_pass http://web; # pass to gunicorn

    # what to serve if upstream is not available or crashes
    # error_page 500 502 503 504 405 /error.html;
  }

  location @rewrites {
    rewrite ^(.+)$ /index.html last;
  }

  listen 80;
  server_name www.example.com;
}
我已经检查了请求头,但是没有设置cookie。

我已经按照SO的建议尝试了一切。我在Django设置的中间件中设置了
CsrfViewMiddleware
CSRF\u COOKIE\u SECURE
SESSION\u COOKIE\u SECURE
设置为False。我已经没有想法和东西可以尝试了。请给我一个解决办法的建议

谢谢

版本:

Django==1.9.5
gunicorn==19.6.0
MySQL-python==1.2.5
nltk==3.3
pandas==0.23.3
django-pandas==0.5.1

NGINX=1.15.1

这是auth的一个问题。要设置CSRF cookie,您需要使用有效用户验证的会话。我在Django(用于管理站点)中创建了一个超级用户,现在它支持cookies,我们可以发布


这在本地开发环境中从未被发现的原因是它使用了以前的cookie集。清除所有Cookie后,我也可以在本地重新创建此问题。

作为提示:为了检查nginx是否删除或修改任何内容,我通常在服务器上执行“curl-I”操作,将响应头与来自外部的请求进行比较。