Django+docker+nginx+uwsgi部署项目时,项目部署完成后,访问Django admin后台登录时报错:
http://xxxx/admin/login/?next=/admin/ 请求方法: POST 状态代码: 403 Forbidden
然后百度发现的解决办法如下:
http://t.csdnimg.cn/SmSWl
http://t.csdnimg.cn/4HiPT
http://t.csdnimg.cn/CDgT1
前面的方法都尝试过了,没有作用。然后最后一篇文章中的方法4解决了我的问题。
解释是这样的:
如果您的Django站点后面有代理服务器(如Nginx或Apache),请确保代理正确设置了HTTP头信息,如X-Forwarded-Proto
所以我们在nginx配置文件中这么写:
location / {# 转发所有请求到 djangoenv 容器的根路径proxy_pass http:xxxx/;# 设置必要的头部信息proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}
欧克,解决问题。