Как серверировать протокол HTTP/2 с помощью django

Я планирую развернуть свое приложение Django с протоколом HTTP/2, но не могу найти подходящего решения. Как я могу обслуживать свое веб-приложение Django с помощью HTTP/2, единственное, что я нахожу, это гипер-h2.

Я прочитал документацию, но не смог настроить соединения.


person Pankaj Sharma    schedule 07.07.2018    source источник


Ответы (3)


Вы можете сделать с прокси Nginx

если у вас есть существующая конфигурация nginx. вы просто добавляете слово .http2 в 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

person Sarath Ak    schedule 09.12.2019
comment
Зная, что gunicorn не поддерживает http2, этого может быть достаточно? - person François Dupont; 03.03.2020
comment
Должно быть достаточно, так как Nginx разорвет соединение здесь и подключится к gunicorn через другой внутренний установленный протокол/канал. - person Jay Modi; 22.02.2021

Один из вариантов — использовать сервер Apache httpd с mod_wsgi. Apache поддерживает завершение HTTP/2. Ссылка на ваше приложение Django по-прежнему осуществляется через WSGI API, поэтому вы не получаете никакого доступа к конкретным функциям HTTP/2 в вашем приложении. Однако вы можете настроить Apache для выполнения таких действий, как отправка сервером от вашего имени.

person Graham Dumpleton    schedule 07.07.2018
comment
Согласен, и нет необходимости говорить об этом полностью: узел js за прокси-сервером nginx"> stackoverflow.com/questions/41637076/ - person Barry Pollard; 08.07.2018

Для поддержки HTTP 2.0 вы можете развернуть приложения Django на веб-серверах, таких как Daphne, с помощью ASGI (который является духовным преемником WSGI).

Подробнее о развертывании Django с ASGI можно прочитать в официальной документации.

чтобы узнать больше об ASGI и что это такое, введение в ASGI
чтобы узнать больше о сервере Daphne, официальный репозиторий

person Ibraheem Alyan    schedule 10.12.2020