django - build_absolute_uri 在反向代理后面使用 HTTPS

标签 django nginx gunicorn

我在反向代理后面提供我的 django 应用程序

互联网 -> Nginx -> Gunicorn socket -> Django 应用

在 nginx 配置中:

upstream my_server {
  server unix:/webapps/my_app/run/gunicorn.sock fail_timeout=0;
}

SSL 是在 nginx 级别使用 certbot 设置的。
request.build_absolute_uriviews.py生成http链接。如何强制它生成 https 链接?

最佳答案

默认 Django 忽略所有 X-Forwarded标题,基于 Django docs.
强制阅读 X-Forwarded-Host通过设置标题USE_X_FORWARDED_HOST = True并设置 SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https') .所以在 settings.py :

USE_X_FORWARDED_HOST = True
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')

关于django - build_absolute_uri 在反向代理后面使用 HTTPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62047354/

相关文章:

python - Django Rest Framework JWT 单元测试

asp.net - ASP.NET Core 应用程序的多主机部署

python - Gunicorn/flask API 暴露 sklearn 模型不工作

python - Flask SocketIO 的正确配置

django - HttpResponseRedirect 不工作 Django 1.7

Django 提要框架 : tzinfo error

与管理器相关的 Django 重复查询

AngularJS 不适用于第三方预渲染服务

apache - 如何通过 IP 阻止对一组 url 模式的访问?

python - python如何在评论中产生错误?