- Сервер із доступом SSH
- Веб-сервер Nginx, що працює на сервері (установка охоплена)
- Python
- Ви користувач sudo.
Налаштування сервера
Почнемо тепер встановлювати серверне середовище, яке ми використовуватимемо для розміщення нашого сервера. Цей підручник використовує сервер Ubuntu. Почніть з оновлення сховищ та встановлення Python3 та Pip.
sudo apt-get updatesudo apt-get upgrade -y
sudo apt-get встановити python3 python3-pip -y
Далі нам потрібно створити каталог для зберігання проекту.
sudo mkdir / var / www / applicationcd / 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 основний.py wsgi.pyВідредагуйте головне.py та налаштуйте програму Flask та всі маршрути. Оскільки цей посібник не є посібником для Flask, ми встановимо основний маршрут та повідомлення про привіт.
з колби імпортна колбаapp = Flask (__ name__)
@app.маршрут ("/")
def home ():
повернути "
Nginx & Gunicorn
"Відредагуйте wsgi.py та додайте код для імпорту програми та запустіть як:
з основної програми імпортуякщо __name__ == "__основна__":
додаток.запустити (налагодження = True)
Нарешті, перевірте, чи він працює, запустивши колбу як:
$ колба запущена* Навколишнє середовище: виробництво
ПОПЕРЕДЖЕННЯ: Це сервер розробки. Не використовуйте його у виробничому розгортанні.
Замість цього використовуйте робочий сервер WSGI.
* Режим налагодження: вимкнено
* Запуск на http: // 127.0.0.1: 5000 / (натисніть CTRL + C, щоб вийти)
Спробуйте отримати доступ до програми на http: // localhost: 5000.
Налаштування Gunicorn
Після успішного запуску нашої програми ми можемо використовувати Gunicorn для тестування програми за допомогою команд:
$ sudo gunicorn --workers 5 wsgi: app[2021-03-19 09:19:34 +0000] [14047] [INFO] Стартовий ганікорн 20.0.4
[2021-03-19 09:19:34 +0000] [14047] [INFO] Прослуховування за адресою: http: // 127.0.0.1: 8000 (14047)
[2021-03-19 09:19:34 +0000] [14047] [INFO] Використання працівника: синхронізація
[2021-03-19 09:19:34 +0000] [14049] [INFO] Працівник завантажувача з pid: 14049
[2021-03-19 09:19:34 +0000] [14050] [INFO] Працівник завантаження з pid: 14050
[2021-03-19 09:19:34 +0000] [14051] [INFO] Працівник завантаження з pid: 14051
[2021-03-19 09:19:34 +0000] [14052] [INFO] Працівник завантаження з pid: 14052
[2021-03-19 09:19:35 +0000] [14053] [INFO] Працівник завантажувача з pid: 14053
Наведені вище команди запускають програму колби за допомогою Gunicorn, використовуючи вказану кількість робітників. Потім ми викликаємо файл wsgi: app, який є файлом та екземпляром програми, яку потрібно запустити.
Після запуску програми за допомогою Gunicorn натисніть CTRL + C, щоб зупинити сервер та налаштувати Nginx.
Використовуйте команди нижче, щоб встановити та запустити Nginx.
sudo apt-get install nginx -ysudo systemctl запустити nginx
sudo systemctl увімкнути nginx
Наступним кроком є редагування конфігурації Nginx у каталозі з підтримкою сайтів та додавання блоку сервера. Розглянемо наступну конфігурацію. Змініть програму на назву вашого проекту.
sudo nano / etc / nginx / sites-available / application.конфсервер
слухати 80;
додаток ім'я_сервера;
access_log / var / log / nginx / application.доступ.журнал;
error_log / var / log / nginx / application.помилка.журнал;
Розташування /
включати proxy_params;
proxy_pass http: // unix: / var / www / application / application.носок;
Продовжуйте створювати посилання на каталог із підтримкою сайту, щоб увімкнути веб-сайт.
sudo ln -s / etc / nginx / sites-available / application.conf / etc / nginx / sites-enabled /Тепер перезапустіть службу Nginx як:
sudo systemctl перезапустіть nginxДалі нам потрібно створити файл systemd-одиниці для обслуговування програми.
sudo nano / etc / systemd / system / application.обслуговування[Одиниця]
Опис = заявка.послуга - додаток Flask, запущений за допомогою Gunicorn.
Після = мережа.ціль
[Сервіс]
Користувач = www-дані
Група = www-дані
WorkingDirectory = / var / www / application /
ExecStart = / usr / bin / gunicorn --workers 3 --bind unix: / var / www / application.носок wsgi: додаток
[Встановити]
WantedBy = багатокористувацький.ціль
Нарешті, збережіть файл модуля, а потім увімкніть і перезавантажте демон.
sudo systemctl перезапустити програму.обслуговуванняsudo systemctl daemon-reload
Тепер ви можете отримати доступ до програми за допомогою IP-адреси або адреси, вказаної у конфігураційному файлі nginx. Можливо, вам доведеться додати його до файлу хоста.
завити http: // додатокHTTP / 1.1200 ОК
Сервер: Werkzeug / 0.16.1 Python / 3.8.5)
Дата: п'ятниця, 19 березня 2021 10:00:39 за Гринвічем
Тип вмісту: text / html
Довжина вмісту: 25
Востаннє змінено: п'ятниця, 19 березня 2021 09:22:47 за Грінвичем
Висновок
У цьому підручнику було розказано про те, як налаштувати програму Python Flask та обслуговувати її через Nginx за допомогою Gunicorn. Розгляньте індивідуальну документацію, щоб дізнатися більше про послуги, про які йдеться у цьому посібнику.