mod_wsgi (Apache)
Если вы используете веб-сервер Apache, вам следует рассмотреть использование mod_wsgi.
Установка mod_wsgi
Если у вас ещё не установлен mod_wsgi, вы должны либо установить его с помощью менеджера пакетов, либо скомпилировать его самостоятельно.
Инструкции по установке mod_wsgi инструкции по установке охватывают установку из исходных кодов на системах UNIX.
Если вы используете ubuntu / debian, вы можете установить его с помощью apt-get и активировать его следующим образом:
# apt-get install libapache2-mod-wsgi
В FreeBSD установите mod_wsgi, скомпилировав порт www/mod_wsgi или используя pkg_add:
# pkg_add -r mod_wsgi
Если вы используете pkgsrc, вы можете установить mod_wsgi, скомпилировав пакет www/ap2-wsgi.
Если после первой перезагрузки Apache вы столкнётесь с ошибками segfault дочерних процессов, вы можете их спокойно игнорировать. Просто перезапустите сервер.
Создание файла .wsgi
Для запуска приложения вам нужен файл yourapplication.wsgi. Этот файл содержит код, который mod_wsgi выполняет при запуске для получения объекта приложения. Объект, называемый application в этом файле, затем используется в качестве приложения.
Для большинства приложений достаточно следующего файла:
from yourapplication import make_app application = make_app()
Если у вас нет функции-фабрики для создания приложения, но есть одиночный экземпляр, вы можете напрямую импортировать его как application.
Сохраните этот файл в месте, где вы сможете его найти (например: /var/www/yourapplication) и убедитесь, что yourapplication и все используемые библиотеки находятся в пути загрузки Python. Если вы не хотите устанавливать его на весь компьютер, рассмотрите использование виртуальной среды Python virtual python.
Настройка Apache
Последнее, что вам нужно сделать, это создать файл конфигурации Apache для вашего приложения. В этом примере мы говорим mod_wsgi выполнить приложение под другим пользователем по соображениям безопасности:
<VirtualHost *>
ServerName example.com
WSGIDaemonProcess yourapplication user=user1 group=group1 processes=2 threads=5
WSGIScriptAlias / /var/www/yourapplication/yourapplication.wsgi
<Directory /var/www/yourapplication>
WSGIProcessGroup yourapplication
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
© 2007–2021 Pallets
Licensed under the BSD 3-clause License.
https://werkzeug.palletsprojects.com/en/2.0.x/deployment/mod_wsgi/