如何配置django-rest-swagger以获取HTTPS请求?
更新: SSL证书已存在且所有应用程序都在使用它,但Swagger仍然发出HTTP请求。
在您的settings.py
中添加此设置。
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
如需更多详细信息,请参考 文档。
此外,您可能需要确保服务器正在转发x_forwarded_proto
,并在nginx中将以下内容添加到服务器配置的位置:
proxy_set_header X-Forwarded-Protocol $scheme;
编辑drf_yasg/openapi.py第260行
从:
self.schemes = [url.scheme]
至:
self.schemes = ["https"]
显然你不应该这样做,因为下次有人安装要求时,这个更改将会丢失。但是这帮助我在我的服务器上使文档工作。
@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 的 location 块内部。
这不是你的 Swagger 的问题。只需在你的 Django 服务器应用程序上安装 SSL 证书即可。