Spec-Zone.ru › Flask 2.3

eventlet

Рекомендуется использовать Gunicorn с рабочими процессами eventlet, а не использовать eventlet напрямую. Gunicorn предоставляет гораздо более настраиваемый и протестированный в производстве сервер.

eventlet позволяет писать асинхронный код на основе сопрограмм, который выглядит как стандартный синхронный Python. Он использует greenlet для включения переключения задач без написания async/await или использования asyncio.

gevent — это еще одна библиотека, которая делает то же самое. Определенные зависимости, которые у вас есть, или другие соображения могут повлиять на выбор той или иной библиотеки.

eventlet предоставляет WSGI-сервер, который может обрабатывать множество подключений одновременно вместо одного на процесс рабочего процесса. Вы должны фактически использовать eventlet в собственном коде, чтобы увидеть преимущества использования сервера.

Установка

При использовании eventlet требуется greenlet>=1.0, в противном случае контекстные локальные переменные, такие как request, не будут работать должным образом. При использовании PyPy требуется PyPy>=7.3.7.

Создайте виртуальную среду, установите свое приложение, затем установите eventlet.

$ cd hello-app
$ python -m venv .venv
$ . .venv/bin/activate
$ pip install .  # install your application
$ pip install eventlet

Запуск

Чтобы использовать eventlet для обслуживания вашего приложения, напишите скрипт, который импортирует его wsgi.server, а также ваше приложение или фабрику приложения.

wsgi.py
import eventlet
from eventlet import wsgi
from hello import create_app

app = create_app()
wsgi.server(eventlet.listen(("127.0.0.1", 8000)), app)
$ python wsgi.py
(x) wsgi starting up on http://127.0.0.1:8000

Внешнее связывание

eventlet не следует запускать от имени root, так как это приведет к запуску кода вашего приложения от имени root, что небезопасно. Однако это означает, что нельзя будет привязаться к порту 80 или 443. Вместо этого следует использовать обратный прокси, такой как nginx или Apache httpd перед eventlet.

Вы можете привязаться ко всем внешним IP-адресам на непривилегированном порту, используя 0.0.0.0 в аргументах сервера, показанных в предыдущем разделе. Не делайте этого, если используется настройка обратного прокси, иначе будет возможность обойти прокси.

0.0.0.0 — это не допустимый адрес для перехода, вы будете использовать определённый IP-адрес в своём браузере.

© 2007–2022 Pallets
Licensed under the BSD 3-clause License.
https://flask.palletsprojects.com/en/2.3.x/deploying/eventlet/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API