Waitress
Waitress — это чистый WSGI-сервер на Python.
- Он легко настраивается.
- Он поддерживает Windows напрямую.
- Он легко устанавливается, так как не требует дополнительных зависимостей или компиляции.
- Он не поддерживает потоковую передачу запросов, все данные запроса всегда буферизуются.
- Он использует один процесс с несколькими рабочими потоками.
Эта страница описывает основы запуска Waitress. Обязательно прочтите его документацию и waitress-serve --help для понимания доступных функций.
Установка
Создайте виртуальную среду, установите приложение, а затем установите 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/3.0.x/deploying/waitress/