【发布时间】:2013-04-17 14:05:20
【问题描述】:
我正在使用 Nginx + supervisord 在 SSL 后面托管一个 django 站点。站点索引加载正常。没有使用本地服务器的 HTTPS,本地一切都可以正常工作。我正在使用 Django 1.4.2
由于某种原因,我得到了奇怪的重定向。
使用管理员时,如果我编辑任何项目,我会被重定向到主页。 提交新项目进行保存时,我得到 404(但数据已保存)。
非管理员: 再次提交表单将我返回到主页而不是“成功”。
我可以解释访问主页的原因。我的 nginx 使用 301 重定向将所有非 http 流量重定向到 https://localhost。所以我猜 django 并不认为我需要安全的 URL。
问题是 django 没有假设安全 url 或者更确切地说 request.is_secure 为假。
我已经注意到了这个 Accessing Django Admin over HTTPS behind Nginx 对代理通行证进行了更改,我认为它不会做任何事情来处理这个问题。但这里就是这样。
settings.py
SESSION_COOKIE_SECURE = True
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTOCOL', 'https')
CSRF_COOKIE_SECURE = True
警告:我对 django 还很陌生。
【问题讨论】:
标签: django https django-admin