- Сервер с доступом по SSH
- Веб-сервер Nginx, работающий на сервере (установка описана)
- Python
- Вы пользователь sudo.
Настройка сервера
Давайте теперь приступим к настройке серверной среды, которую мы будем использовать для размещения нашего сервера. В этом руководстве используется сервер Ubuntu. Начните с обновления репозиториев и установки Python3 и Pip.
sudo apt-get updatesudo 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 -ysudo systemctl запустить nginx
sudo systemctl включить nginx
Следующим шагом является редактирование конфигурации Nginx в каталоге с поддержкой сайтов и добавление блока сервера. Рассмотрим следующую конфигурацию. Измените приложение на название вашего проекта.
Судо нано / и т. д. / nginx / сайты-доступные / приложение.confserver
слушать 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. Изучите отдельную документацию, чтобы узнать больше об услугах, обсуждаемых в этом руководстве.