我在反向代理后面提供我的 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_uri
在 views.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/