如何使用 django 服务 HTTP/2 协议
Posted
技术标签:
【中文标题】如何使用 django 服务 HTTP/2 协议【英文标题】:How to server HTTP/2 Protocol with django 【发布时间】:2018-12-15 22:48:36 【问题描述】:我计划使用 HTTP/2 协议部署我的 Django 应用程序,但我找不到合适的解决方案。如何使用 HTTP/2 为我的 Django Web 应用程序提供服务,我发现的唯一内容是 hyper-h2。
我阅读了文档但无法设置连接。
【问题讨论】:
【参考方案1】:一种选择是使用带有 mod_wsgi 的 Apache httpd 服务器。 Apache 支持终止 HTTP/2。到您的 Django 应用程序的链接仍然是通过 WSGI API,因此您实际上无法访问应用程序中的 HTTP/2 特定功能。您可以将 Apache 配置为代表您执行服务器推送等操作。
https://httpd.apache.org/docs/2.4/howto/http2.html https://httpd.apache.org/docs/2.4/mod/mod_http2.html【讨论】:
同意,不需要一直说下去:***.com/questions/41637076/…【参考方案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
【讨论】:
以上是关于如何使用 django 服务 HTTP/2 协议的主要内容,如果未能解决你的问题,请参考以下文章