mod_wsgi
mod_wsgi — это сервер WSGI, интегрированный с сервером Apache httpd. Современная команда mod_wsgi-express упрощает конфигурацию и запуск сервера без необходимости написания конфигурации Apache httpd.
- Тесно интегрирован с Apache httpd.
- Поддерживает Windows напрямую.
- Требует компилятора и заголовочных файлов Apache для установки.
- Не требует настройки обратного прокси.
Эта страница описывает основы запуска mod_wsgi-express, а не более сложную установку и конфигурацию с httpd. Обязательно ознакомьтесь с документацией mod_wsgi-express, mod_wsgi и Apache httpd, чтобы понять доступные функции.
Установка
Для установки mod_wsgi необходим компилятор и установленные заголовочные файлы сервера и разработки Apache. В противном случае возникнет ошибка. Способ установки зависит от ОС и используемого менеджера пакетов.
Создайте виртуальное окружение, установите ваше приложение, а затем установите mod_wsgi.
$ cd hello-app $ python -m venv venv $ . venv/bin/activate $ pip install . # install your application $ pip install mod_wsgi
Запуск
Единственный аргумент для mod_wsgi-express — это скрипт, содержащий ваше приложение, которое должно быть названо application. Вы можете написать небольшой скрипт для импорта вашего приложения с таким именем или для его создания, если используете шаблон приложения.
wsgi.pyfrom hello import app application = app
wsgi.pyfrom hello import create_app application = create_app()
Теперь запустите команду mod_wsgi-express start-server.
$ mod_wsgi-express start-server wsgi.py --processes 4
Опция --processes задаёт количество процессов-обработчиков для запуска; начальное значение может быть CPU * 2.
Логи для каждого запроса не отображаются в терминале. Если произошла ошибка, её информация записывается в файл журнала ошибок, отображаемый при запуске сервера.
Внешнее связывание
В отличие от других серверов WSGI в этих документах, mod_wsgi может запускаться от имени root для привязки к привилегированным портам, таким как 80 и 443. Однако он должен быть настроен на понижение привилегий до другого пользователя и группы для процессов-обработчиков.
Например, если вы создали пользователя и группу hello, вы должны установить ваше виртуальное окружение и приложение как этого пользователя, а затем указать mod_wsgi понизить привилегии до этого пользователя после запуска.
$ sudo /home/hello/venv/bin/mod_wsgi-express start-server \
/home/hello/wsgi.py \
--user hello --group hello --port 80 --processes 4
© 2007–2022 Pallets
Licensed under the BSD 3-clause License.
https://werkzeug.palletsprojects.com/en/2.3.x/deployment/mod_wsgi/