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 встановити python3 python3-pip -y

Далі нам потрібно створити каталог для зберігання проекту.

sudo mkdir / var / www / application
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 основний.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 -y
sudo 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. Розгляньте індивідуальну документацію, щоб дізнатися більше про послуги, про які йдеться у цьому посібнику.

Add Mouse gestures to Windows 10 using these free tools
In recent years computers and operating systems have greatly evolved. There was a time when users had to use commands to navigate through file manager...
Control & manage mouse movement between multiple monitors in Windows 10
Dual Display Mouse Manager lets you control & configure mouse movement between multiple monitors, by slowing down its movements near the border. Windo...
WinMouse lets you customize & improve mouse pointer movement on Windows PC
If you want to improve the default functions of your mouse pointer use freeware WinMouse. It adds more features to help you get the most out of your h...