Flask - Развертывание
Внешне видимый сервер
Приложение Flask на сервере разработки доступно только на компьютере, на котором настроена среда разработки. Это поведение по умолчанию, поскольку в режиме отладки пользователь может выполнять произвольный код на компьютере.
Если debug отключен, сервер разработки на локальном компьютере можно сделать доступным для пользователей в сети, установив имя хоста как ‘0.0.0.0’.
app.run(host = ’0.0.0.0’)
Таким образом, ваша операционная система прослушивает все общедоступные IP-адреса.
Развертывание
Чтобы перейти от среды разработки к полноценной производственной среде, приложение необходимо развернуть на реальном веб-сервере. В зависимости от того, что у вас есть, доступны разные варианты развертывания веб-приложения Flask.
Для небольшого приложения вы можете рассмотреть возможность его развертывания на любой из следующих размещенных платформ, каждая из которых предлагает бесплатный план для небольшого приложения.
- Heroku
- dotcloud
- webfaction
Приложение Flask можно развернуть на этих облачных платформах. Кроме того, есть возможность развернуть приложение Flask на облачной платформе Google. Служба Localtunnel позволяет вам поделиться своим приложением на локальном хосте, не вмешиваясь в настройки DNS и брандмауэра.
Если вы склонны использовать выделенный веб-сервер вместо вышеупомянутых общих платформ, вам следует изучить следующие варианты.
mod_wsgi
mod_wsgi - это модуль Apache, который предоставляет WSGI-совместимый интерфейс для размещения веб-приложений на основе Python на сервере Apache.
Установка mod_wsgi
Чтобы установить официальный выпуск прямо из PyPi, вы можете запустить -
pip install mod_wsgi
Чтобы убедиться, что установка прошла успешно, запустите сценарий mod_wsgi-express с командой start-server -
mod_wsgi-express start-server
Это запустит Apache / mod_wsgi на порту 8000. Затем вы можете убедиться, что установка работает, указав в браузере -
http://localhost:8000/
Создание файла .wsgi
Должен быть yourapplication.wsgiфайл. Этот файл содержит кодmod_wsgi,который выполняется при запуске для получения объекта приложения. Для большинства приложений достаточно следующего файла -
from yourapplication import app as application
Убедись, что yourapplication и все используемые библиотеки находятся на пути загрузки python.
Настройка Apache
Тебе нужно сказать mod_wsgi, расположение вашего приложения.
<VirtualHost *>
ServerName example.com
WSGIScriptAlias / C:\yourdir\yourapp.wsgi
<Directory C:\yourdir>
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
Автономные контейнеры WSGI
Есть много популярных серверов, написанных на Python, которые содержат приложения WSGI и обслуживают HTTP.
- Gunicorn
- Tornado
- Gevent
- Скрученная паутина