Nginx

Как да използвам Nginx с Flask.

Как да използвам Nginx с Flask.
Python е страхотен, лесен за усвояване и мощен език за програмиране и с рамки като Django и Flask можем да го използваме за създаване на пълноценни уеб приложения. След като създадем уеб приложение, използвайки библиотеки и рамки като Flask, трябва да го хостваме на сървър и да го изложим на обществеността. Този урок обсъжда как да хоствате вашето уеб приложение на сървър, работещ с Nginx, използвайки Gunicorn. Преди да започнем с Flask и Gunicorn, уверете се, че отговаряте на следните изисквания:

Настройка на сървъра

Нека сега започнем да задаваме сървърната среда, която ще използваме за хостване на нашия сървър. Този урок използва Ubuntu Server. Започнете с актуализиране на хранилищата и инсталиране на 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 (колба и Gunicorn)

sudo apt-get инсталирайте python3-flask python3-gunicorn

Нека сега да пристъпим към инициализиране на приложение за колба. Започнете, като създадете основната.py-държи приложението-и wsgi.py, което ще стартира приложението.

sudo touch main.py wsgi.py

Редактирайте основното.py и настройте приложението си Flask и всички маршрути. Тъй като този урок не е ръководство за Flask, ще зададем основен маршрут и послание за здравей.

от колба за внос Колба
ап = колба (__ име__)
@app.маршрут ("/")
def home ():
връщане "

Nginx & Gunicorn

"

Редактирайте wsgi.py файл и добавете кода за импортиране на приложение и стартирайте като:

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

И накрая, проверете дали тя работи и работи, като извикате колба като:

Тече $ колба
* Околна среда: производство
ПРЕДУПРЕЖДЕНИЕ: Това е сървър за разработка. Не го използвайте в производствено внедряване.
Вместо това използвайте производствен WSGI сървър.
* Режим за отстраняване на грешки: изключен
* Работи на http: // 127.0.0.1: 5000 / (Натиснете CTRL + C, за да излезете)

Опитайте да осъществите достъп до приложението на http: // localhost: 5000.

Настройване на Gunicorn

След като приложението ни се изпълни успешно, можем да използваме Gunicorn, за да тестваме приложението с помощта на командите:

$ sudo gunicorn - работници 5 wsgi: ап
[2021-03-19 09:19:34 +0000] [14047] [INFO] Стартиране на gunicorn 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 инсталиране 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.1 200 ОК
Сървър: Werkzeug / 0.16.1 Python / 3.8.5)
Дата: петък, 19 март 2021 г. 10:00:39 GMT
Тип съдържание: text / html
Дължина на съдържанието: 25
Последна промяна: петък, 19 март 2021 09:22:47 GMT

Заключение

Този урок разгледа как да настроите приложение на Python Flask и да го обслужвате през Nginx с помощта на Gunicorn. Помислете за индивидуалната документация, за да научите повече за услугите, обсъдени в този урок.

Как да променяте настройките на мишката и тъчпада с помощта на Xinput в Linux
Повечето дистрибуции на Linux се доставят с библиотека “libinput” по подразбиране за обработка на входни събития в системата. Той може да обработва вх...
Пренастройте бутоните на мишката си по различен начин за различен софтуер с X-Mouse Button Control
Може би се нуждаете от инструмент, който може да промени контрола на мишката с всяко приложение, което използвате. Ако случаят е такъв, можете да изпр...
Преглед на безжична мишка на Microsoft Sculpt Touch
Наскоро прочетох за Microsoft Sculpt Touch безжична мишка и реших да я купя. След като го използвах известно време, реших да споделя опита си с него. ...