【问题标题】:How to server HTTP/2 Protocol with django如何使用 django 服务 HTTP/2 协议
【发布时间】:2018-12-15 22:48:36
【问题描述】:

我计划使用 HTTP/2 协议部署我的 Django 应用程序,但我找不到合适的解决方案。如何使用 HTTP/2 为我的 Django Web 应用程序提供服务,我发现的唯一内容是 hyper-h2

我阅读了文档但无法设置连接。

【问题讨论】:

    标签: django python-3.x django-views http2 django-wsgi


    【解决方案1】:

    一种选择是使用带有 mod_wsgi 的 Apache httpd 服务器。 Apache 支持终止 HTTP/2。到您的 Django 应用程序的链接仍然是通过 WSGI API,因此您实际上无法访问应用程序中的 HTTP/2 特定功能。您可以将 Apache 配置为代表您执行服务器推送等操作。

    【讨论】:

    【解决方案2】:

    你可以使用 Nginx 代理

    如果你有现有的 nginx 配置。您只需添加一个单词 .http2 in listen

        listen 443 ssl http2 default_server;
    

    完整文档可在

    中找到

    https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-with-http-2-support-on-ubuntu-16-04

    【讨论】:

    • 知道gunicorn不支持http2,这样就够了吧?
    • 应该足够了,因为 Nginx 将在这里终止连接,并将通过另一个内部设置的协议/通道与 gunicorn 连接。
    【解决方案3】:

    为了支持 HTTP 2.0,您可以使用 ASGI(它是 WSGI 的精神继承者)在像 Daphne 这样的 Web 服务器上部署 Django 应用程序。

    您可以在official documentaion 中阅读有关使用 ASGI 部署 Django 的更多信息

    要了解更多关于 ASGI 及其内容的信息,introduction to ASGI
    阅读更多关于 Daphne 服务器的信息,official repository

    【讨论】:

      猜你喜欢
      • 2020-06-11
      • 1970-01-01
      • 2014-07-10
      • 2023-04-01
      • 2014-04-17
      • 1970-01-01
      • 2013-02-01
      • 1970-01-01
      • 2017-01-10
      相关资源
      最近更新 更多