我已经在 nginx 后面的 uwsgi 中运行了 django。当我尝试访问 https://site/admin/
时,我看到了预期的登录屏幕。通过表单登录似乎成功了,但是,我只是回到了登录屏幕。 Firebug 显示重定向到普通的 http://site/admin/
url,然后由 nginx 重定向到 https url。
救命啊!我对如何强制管理应用程序仅使用 https 网址感到困惑。
请注意,这似乎是一个相关的、未解答的问题:https://example.com/admin redirects to https://admin in Django Nginx and gunicorn
最佳答案
将以下内容添加到 nginx.conf 解决了我的问题。
location / {
...
include uwsgi_params;
uwsgi_param HTTP_X_FORWARDED_PROTOCOL https;
uwsgi_param UWSGI_SCHEME $scheme;
}
同时将以下内容添加到settings.py:
SESSION_COOKIE_SECURE = True
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTOCOL', 'https')
CSRF_COOKIE_SECURE = True
关于django - 在 Nginx 后面通过 HTTPS 访问 Django Admin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11943491/