Waitress
Waitress — это чистый Python WSGI-сервер.
- Он легко настраивается.
- Он поддерживает Windows напрямую.
- Его легко установить, так как он не требует дополнительных зависимостей или компиляции.
- Он не поддерживает потоковую передачу запросов, все данные запроса всегда буферизуются.
- Он использует один процесс с несколькими рабочими потоками.
На этой странице описаны основы запуска Waitress. Обязательно прочитайте его документацию и waitress-serve --help для понимания доступных функций.
Установка
Создайте virtualenv, установите своё приложение, а затем установите waitress.
$ cd hello-app $ python -m venv .venv $ . .venv/bin/activate $ pip install . # install your application $ pip install waitress
Запуск
Единственный обязательный аргумент для waitress-serve указывает, как загрузить ваше приложение Flask. Синтаксис {module}:{app}. app — это импортируемое имя модуля с вашим приложением. app — это переменная с приложением. Если вы используете шаблон фабрики приложений, используйте --call {module}:{factory} вместо этого.
# equivalent to 'from hello import app' $ waitress-serve --host 127.0.0.1 hello:app # equivalent to 'from hello import create_app; create_app()' $ waitress-serve --host 127.0.0.1 --call hello:create_app Serving on http://127.0.0.1:8080
Опция --host привязывает сервер только к локальному 127.0.0.1.
Логи для каждого запроса не отображаются, отображаются только ошибки. Ведение журнала можно настроить через интерфейс Python, а не через командную строку.
Внешняя привязка
Waitress не следует запускать от имени root, потому что это заставит код вашего приложения выполняться от имени root, что небезопасно. Однако это означает, что будет невозможно привязаться к порту 80 или 443. Вместо этого необходимо использовать обратный прокси, такой как nginx или Apache httpd, перед Waitress.
Вы можете привязаться ко всем внешним IP-адресам на непривилегированном порту, не указывая опцию --host. Не делайте этого, если используете настройку обратного прокси, иначе можно будет обойти прокси.
0.0.0.0 — это не допустимый адрес для перехода, вы будете использовать конкретный IP-адрес в своём браузере.
© 2010 Pallets
Licensed under the BSD 3-clause License.
https://flask.palletsprojects.com/en/stable/deploying/waitress/