django LOGIN_REDIRECT_URL无法在nginx ssl后面工作

时间:2013-11-21 15:23:36

标签: django ssl nginx

网站的其余部分正在运行,但登录后的重定向是

http ://127.0.0.1:8443/after_login

不是预期的

https://127.0.0.1:8443/after_login

会导致nginx错误:

400 Bad Request 普通HTTP请求已发送到HTTPS端口

如何强制重定向链接正确构建?

环境信息:

django 1.4.1

settings.py

LOGIN_REDIRECT_URL = reverse_lazy('after_login')
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTOCOL', 'https')

1 个答案:

答案 0 :(得分:1)

直到我将proxy_set_header X-Forwarded-Proto $scheme添加到nginx的配置中之后才发生这种情况:

location / {
  proxy_pass http://unix:/path/to/your/gunicorn_socket;
  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}