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 вы столкнетесь с ошибками segfaulting дочерних процессов, вы можете их безопасно игнорировать. Просто перезапустите сервер.
Создание файла .wsgi
Для запуска вашего приложения вам нужен файл yourapplication.wsgi. Этот файл содержит код, который mod_wsgi выполняется при запуске для получения объекта приложения. Объект, который называется application в этом файле, затем используется в качестве приложения.
Для большинства приложений достаточен следующий файл:
from yourapplication import make_app application = make_app()
Если у вас нет функции-фабрики для создания приложения, но есть одиночный экземпляр, вы можете напрямую импортировать его как application.
Сохраните этот файл где-нибудь, где вы сможете его найти (например: /var/www/yourapplication) и убедитесь, что yourapplication и все используемые библиотеки находятся на пути загрузки Python. Если вы не хотите устанавливать его в систему, рассмотрите использование виртуальной среды Python virtualenv.
Настройка 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.16.x/deployment/mod_wsgi/