【发布时间】:2017-07-28 11:31:48
【问题描述】:
如何配置django-rest-swagger获取HTTPS请求?
更新: SSL 证书存在并且所有应用程序都在使用它,但是大摇大摆地发出一个 http 请求。
【问题讨论】:
标签: python django django-rest-framework swagger-2.0 django-rest-swagger
如何配置django-rest-swagger获取HTTPS请求?
更新: SSL 证书存在并且所有应用程序都在使用它,但是大摇大摆地发出一个 http 请求。
【问题讨论】:
标签: python django django-rest-framework swagger-2.0 django-rest-swagger
将此设置添加到您的settings.py,
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
更多详情,请参考documentation..
另外,您可能需要确保您的服务器正在转发 x_forwarded_proto 并在 nginx 上将此添加到您在服务器配置中的位置:
proxy_set_header X-Forwarded-Protocol $scheme;
【讨论】:
把 url='https://your_server_address/',放在 urls 中的 get_schema_view 函数中。
但是 swagger 现在只能在 https 上工作,如果你想同时在 http 和 https 上工作,你可以通过 env 变量来处理。
【讨论】:
这不是你大摇大摆的问题。只需在您的 django 服务应用服务器上安装 SSL 证书。
【讨论】:
@zaidfazil 的回答几乎对我有用。我必须添加
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
到我的 django 设置,但后来我不得不添加
proxy_set_header X-Forwarded-Proto https;
代替:
proxy_set_header X-Forwarded-Protocol $scheme;
在为 django 应用程序提供服务的 nginx 位置块内。
【讨论】: