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 указывает, как загрузить ваше приложение. Синтаксис {module}:{app}. app — это импортируемое имя модуля с вашим приложением. app — это переменная с приложением. Если вы используете паттерн фабрики приложений, используйте --call {module}:{factory} вместо этого.
# equivalent to 'from hello import app' $ waitress-serve hello:app --host 127.0.0.1 # equivalent to 'from hello import create_app; create_app()' $ waitress-serve --call hello:create_app --host 127.0.0.1 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-адрес.
© 2007 Pallets
Licensed under the BSD 3-clause License.
https://werkzeug.palletsprojects.com/en/latest/deployment/waitress/