Nginx

Как использовать Nginx с Flask.

Как использовать Nginx с Flask.
Python - отличный, простой в освоении и всемогущий язык программирования, и с такими фреймворками, как Django и Flask, мы можем использовать его для создания полноценных веб-приложений. После того, как мы создадим веб-приложение с использованием библиотек и фреймворков, таких как Flask, нам нужно разместить его на сервере и сделать его общедоступным. В этом руководстве обсуждается, как разместить ваше веб-приложение на сервере под управлением Nginx с помощью Gunicorn. Прежде чем мы начнем с Flask и Gunicorn, убедитесь, что вы соответствуете следующим требованиям:

Настройка сервера

Давайте теперь приступим к настройке серверной среды, которую мы будем использовать для размещения нашего сервера. В этом руководстве используется сервер Ubuntu. Начните с обновления репозиториев и установки Python3 и Pip.

sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install python3 python3-pip -y

Далее нам нужно создать каталог для хранения проекта.

sudo mkdir / var / www / приложение
cd / var / www / application

Измените владельца каталога и разрешения:

sudo chown -R www-data: www-data / var / www / application /

Затем установите пакеты с помощью apt (flask и Gunicorn)

sudo apt-get установить python3-flask python3-gunicorn

Теперь приступим к инициализации приложения фляги. Начнем с создания основного.py-держит приложение и wsgi.py, который запустит приложение.

sudo touch main.py wsgi.ру

Редактировать основной.py и настройте приложение Flask и все маршруты. Поскольку это руководство не является руководством по Flask, мы настроим базовый маршрут и сообщение hello world.

из фляги импорт фляги
app = Flask (__ имя__)
@приложение.маршрут("/")
def home ():
возвращаться "

Nginx и Gunicorn

"

Отредактируйте WSGI.py и добавьте код для импорта приложения и запустите его как:

из основного приложения импорта
если __name__ == "__main__":
приложение.запустить (отладка = True)

Наконец, проверьте, работает ли он, вызвав flask как:

$ flask run
* Окружающая среда: производство
ВНИМАНИЕ: это сервер разработки. Не используйте его в производственном развертывании.
Вместо этого используйте производственный сервер WSGI.
* Режим отладки: выключен
* Работает на http: // 127.0.0.1: 5000 / (Для выхода нажмите CTRL + C)

Попробуйте получить доступ к приложению на http: // localhost: 5000.

Настройка Gunicorn

Как только наше приложение будет успешно запущено, мы можем использовать Gunicorn для тестирования приложения с помощью команд:

$ sudo gunicorn --workers 5 WSGI: приложение
[2021-03-19 09:19:34 +0000] [14047] [ИНФОРМАЦИЯ] Запуск Gunicorn 20.0.4
[2021-03-19 09:19:34 +0000] [14047] [ИНФОРМАЦИЯ] Слушает: http: // 127.0.0.1: 8000 (14047)
[2021-03-19 09:19:34 +0000] [14047] [ИНФОРМАЦИЯ] Использование worker: sync
[2021-03-19 09:19:34 +0000] [14049] [ИНФОРМАЦИЯ] Загрузочный рабочий с pid: 14049
[2021-03-19 09:19:34 +0000] [14050] [INFO] Загрузочный рабочий с pid: 14050
[2021-03-19 09:19:34 +0000] [14051] [ИНФОРМАЦИЯ] Загрузочный рабочий с pid: 14051
[2021-03-19 09:19:34 +0000] [14052] [ИНФОРМАЦИЯ] Загрузочный рабочий с pid: 14052
[2021-03-19 09:19:35 +0000] [14053] [ИНФОРМАЦИЯ] Загрузочный рабочий с pid: 14053

Приведенные выше команды запускают приложение flask с использованием Gunicorn с указанным количеством рабочих. Затем мы вызываем файл wsgi: app, который является файлом и экземпляром приложения для запуска.

После запуска приложения с использованием Gunicorn нажмите CTRL + C, чтобы остановить сервер и настроить Nginx.

Используйте приведенные ниже команды для установки и запуска Nginx.

sudo apt-get install nginx -y
sudo systemctl запустить nginx
sudo systemctl включить nginx

Следующим шагом является редактирование конфигурации Nginx в каталоге с поддержкой сайтов и добавление блока сервера. Рассмотрим следующую конфигурацию. Измените приложение на название вашего проекта.

Судо нано / и т. д. / nginx / сайты-доступные / приложение.conf
server
слушать 80;
server_name application;
журнал_доступа / var / log / nginx / приложение.доступ.бревно;
error_log / var / log / nginx / приложение.ошибка.бревно;
место расположения /
включить proxy_params;
прокси-пароль http: // unix: / var / www / application / application.носок;

Приступите к созданию ссылки на каталог с включенным сайтом, чтобы включить его.

sudo ln -s / etc / nginx / сайты-доступные / приложение.conf / и т. д. / nginx / сайты-включенные /

Теперь перезапустите службу Nginx как:

sudo systemctl перезапустить nginx

Затем нам нужно создать файл модуля systemd для обслуживания приложения.

Судо нано / и т. д. / systemd / система / приложение.услуга
[Ед. изм]
Описание = приложение.service - приложение Flask, запускаемое с Gunicorn.
После = сеть.цель
[Услуга]
Пользователь = www-data
Группа = www-data
Рабочий каталог = / var / www / application /
ExecStart = / usr / bin / gunicorn --workers 3 --bind unix: / var / www / application.носок wsgi: приложение
[Установить]
WantedBy = многопользовательский.цель

Наконец, сохраните файл модуля, затем включите и перезагрузите демон.

sudo systemctl перезапустить приложение.услуга
sudo systemctl демон-перезагрузка

Теперь вы можете получить доступ к приложению, используя IP-адрес или адрес, указанный в конфигурационном файле nginx. Возможно, вам потребуется добавить его в файл хоста.

curl http: // приложение
HTTP / 1.1 200 ОК
Сервер: Werkzeug / 0.16.1 Python / 3.8.5)
Дата: пт, 19 марта 2021 г., 10:00:39 GMT
Тип содержимого: текст / html
Длина содержимого: 25
Последнее изменение: пт, 19 марта 2021 г., 09:22:47 GMT

Заключение

В этом руководстве рассказывается, как настроить приложение Python Flask и обслуживать его через Nginx с помощью Gunicorn. Изучите отдельную документацию, чтобы узнать больше об услугах, обсуждаемых в этом руководстве.

Как показать наложение OSD в полноэкранных приложениях и играх Linux
Игра в полноэкранные игры или использование приложений в полноэкранном режиме без отвлекающих факторов может отрезать вас от соответствующей системной...
Топ-5 карт для захвата игр
Все мы видели и любили потоковые игры на YouTube. PewDiePie, Jakesepticye и Markiplier - лишь некоторые из лучших игроков, которые заработали миллионы...
Как разработать игру в Linux
Десять лет назад не многие пользователи Linux могли бы предсказать, что их любимая операционная система однажды станет популярной игровой платформой д...