代码之家  ›  专栏  ›  技术社区  ›  Artem Ulko

Django REST Swagger HTTPS请求

  •  6
  • Artem Ulko  · 技术社区  · 9 年前

    如何配置 django-rest-swagger 获取HTTPS请求?

    SSL证书存在,所有应用程序都在使用它,但斯威格发出http请求。

    5 回复  |  直到 9 年前
        1
  •  14
  •   zaidfazil    9 年前

    settings.py ,

    SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
    

    documentation

    此外,您可能需要确保服务器正在转发 x_forwarded_proto 在nginx上,将其添加到服务器配置中的位置:

    proxy_set_header  X-Forwarded-Protocol  $scheme;
    
        2
  •  1
  •   Muhammad Farhan Mughal    5 年前

    放置url='https://your_server_address/,在URL中的get\u schema\u view函数中。

    但是,swagger现在只在https上工作,如果您想同时在http和https上工作,可以通过env变量处理。

        3
  •  0
  •   jerego    4 年前

    以上所有的解决方案都不适用于我,所以我做了一些事情

    编辑的drf_yasg/ openapi.py

    发件人:

    self.schemes = [url.scheme]
    

    收件人:

    self.schemes = ["https"]
    

    不应该这样做

        4
  •  -1
  •   matyas    7 年前

    @扎伊达齐尔的回答几乎对我有效。我必须补充一点

    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位置块内。

        5
  •  -2
  •   Kostas Livieratos    9 年前

    推荐文章