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 вы столкнунетесь с ошибками сегментирования дочерних процессов, можете их спокойно игнорировать. Просто перезапустите сервер.
Создание файла .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–2020 Pallets
Licensed under the BSD 3-clause License.
https://werkzeug.palletsprojects.com/en/0.15.x/deployment/mod_wsgi/