Spec-Zone.ru › Werkzeug 3.0

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.py
from hello import app

application = app
wsgi.py
from 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 Pallets
Licensed under the BSD 3-clause License.
https://werkzeug.palletsprojects.com/en/3.0.x/deployment/mod_wsgi/

Spec-Zone.ru

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