Spec-Zone.ru › Flask 1.0

uWSGI

uWSGI — это вариант развертывания на серверах, таких как nginx, lighttpd и cherokee; см. FastCGI и Самостоятельные контейнеры WSGI для других вариантов. Чтобы использовать ваше приложение WSGI с протоколом uWSGI, вам сначала потребуется сервер uWSGI. uWSGI является как протоколом, так и сервером приложений; сервер приложений может обслуживать протоколы uWSGI, FastCGI и HTTP.

Самый популярный сервер uWSGI — uwsgi, который мы будем использовать в этом руководстве. Убедитесь, что он установлен, чтобы следовать инструкциям.

Обратите внимание

Пожалуйста, убедитесь заранее, что все app.run() вызовы, которые могут быть в вашем файле приложения, находятся внутри блока if __name__ == '__main__': или перемещены в отдельный файл. Просто убедитесь, что он не вызывается, так как это всегда запустит локальный сервер WSGI, чего мы не хотим, если развертываем это приложение в uWSGI.

Запуск вашего приложения с uwsgi

uwsgi предназначен для работы с вызовами WSGI, находящимися в модулях Python.

Для приложения Flask в myapp.py используйте следующую команду:

$ uwsgi -s /tmp/yourapplication.sock --manage-script-name --mount /yourapplication=myapp:app

--manage-script-name переместит обработку SCRIPT_NAME в uwsgi, так как он более умён в этом вопросе. Он используется вместе с директивой --mount, которая направит запросы к /yourapplication на myapp:app. Если ваше приложение доступно на корневом уровне, вы можете использовать одну / вместо /yourapplication. myapp относится к имени файла вашего приложения Flask (без расширения) или модуля, который предоставляет app. app — это вызываемый объект внутри вашего приложения (обычно строка читается как app = Flask(__name__)).

Если вы хотите развернуть ваше приложение Flask внутри виртуальной среды, вам также нужно добавить --virtualenv /path/to/virtual/environment. Возможно, вам также потребуется добавить --plugin python или --plugin python3 в зависимости от версии Python, которую вы используете для вашего проекта.

Настройка nginx

Базовая конфигурация nginx для Flask выглядит так:

location = /yourapplication { rewrite ^ /yourapplication/; }
location /yourapplication { try_files $uri @yourapplication; }
location @yourapplication {
  include uwsgi_params;
  uwsgi_pass unix:/tmp/yourapplication.sock;
}

Эта конфигурация привязывает приложение к /yourapplication. Если вы хотите, чтобы оно было на корневом уровне URL, это немного проще:

location / { try_files $uri @yourapplication; }
location @yourapplication {
    include uwsgi_params;
    uwsgi_pass unix:/tmp/yourapplication.sock;
}

© 2007–2020 Pallets
Licensed under the BSD 3-clause License.
https://flask.palletsprojects.com/en/1.0.x/deploying/uwsgi/

Spec-Zone.ru

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