Nginx

Cum se utilizează Nginx cu Flask.

Cum se utilizează Nginx cu Flask.
Python este un limbaj de programare excelent, ușor de învățat și atotputernic, iar cu cadre precum Django și Flask, îl putem folosi pentru a crea aplicații web complete. Odată ce creăm o aplicație web utilizând biblioteci și cadre precum Flask, trebuie să o găzduim pe un server și să o expunem publicului. Acest tutorial discută despre cum să vă găzduiți aplicația web pe un server care rulează Nginx folosind Gunicorn. Înainte de a începe cu Flask și Gunicorn, asigurați-vă că îndepliniți următoarele cerințe:

Configurarea serverului

Să începem acum să setăm mediul serverului pe care îl vom folosi pentru a ne găzdui serverul. Acest tutorial utilizează serverul Ubuntu. Începeți prin actualizarea depozitelor și instalarea Python3 și Pip.

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

Apoi, trebuie să creăm un director pentru a stoca proiectul.

sudo mkdir / var / www / application
cd / var / www / application

Schimbați proprietatea și permisiunile directorului:

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

Apoi, instalați pachetele folosind apt (flask și Gunicorn)

sudo apt-get install python3-flask python3-gunicorn

Să continuăm acum să inițializăm o aplicație balon. Începeți prin crearea principalului.py-deține aplicația-și wsgi.py, care va face ca aplicația să ruleze.

sudo atingeți principal.py wsgi.py

Editați principalul.py și configurați aplicația Flask și toate rutele. Deoarece acest tutorial nu este un ghid Flask, vom configura un traseu de bază și un mesaj Hello World.

din flacon import Flacon
app = Flask (__ nume__)
@app.traseu("/")
def home ():
întoarcere "

Nginx și Gunicorn

"

Editați wsgi.py și adăugați codul pentru a importa aplicația și rulați ca:

din aplicația principală de import
dacă __name__ == "__main__":
aplicație.rulați (depanare = Adevărat)

În cele din urmă, testați dacă funcționează apelând balonul ca:

$ flask run
* Mediu: producție
AVERTISMENT: Acesta este un server de dezvoltare. Nu-l utilizați într-o implementare de producție.
Folosiți în schimb un server WSGI de producție.
* Mod de depanare: dezactivat
* Se rulează pe http: // 127.0.0.1: 5000 / (Apăsați CTRL + C pentru a ieși)

Încercați să accesați aplicația de pe http: // localhost: 5000.

Configurarea Gunicornului

Odată ce aplicația noastră rulează cu succes, putem folosi Gunicorn pentru a testa aplicația folosind comenzile:

$ sudo gunicorn - workers 5 wsgi: app
[2021-03-19 09:19:34 +0000] [14047] [INFO] Pornirea gunicornului 20.0.4
[2021-03-19 09:19:34 +0000] [14047] [INFO] Ascultând la: http: // 127.0.0.1: 8000 (14047)
[2021-03-19 09:19:34 +0000] [14047] [INFO] Utilizarea lucrătorului: sincronizare
[2021-03-19 09:19:34 +0000] [14049] [INFO] Lucrător de pornire cu pid: 14049
[2021-03-19 09:19:34 +0000] [14050] [INFO] Lucrător de pornire cu pid: 14050
[2021-03-19 09:19:34 +0000] [14051] [INFO] Lucrător de pornire cu pid: 14051
[2021-03-19 09:19:34 +0000] [14052] [INFO] Lucrător de pornire cu pid: 14052
[2021-03-19 09:19:35 +0000] [14053] [INFO] Lucrător de pornire cu pid: 14053

Comenzile de mai sus rulează aplicația balon folosind Gunicorn folosind numărul specificat de lucrători. Apelăm apoi la fișierul wsgi: app, care este fișierul și instanța aplicației de rulat.

Odată ce aplicația rulează folosind Gunicorn, apăsați CTRL + C pentru a opri serverul și a configura Nginx.

Utilizați comenzile de mai jos pentru a instala și a rula Nginx.

sudo apt-get install nginx -y
sudo systemctl pornește nginx
sudo systemctl activează nginx

Următorul pas este să editați configurația Nginx în directorul activat pentru site-uri și să adăugați blocul de server. Luați în considerare următoarea configurație. Schimbați aplicația cu numele proiectului dvs.

sudo nano / etc / nginx / sites-available / application.conf
Server
ascultă 80;
cerere server_name;
access_log / var / log / nginx / application.acces.Buturuga;
error_log / var / log / nginx / appliation.eroare.Buturuga;
Locație /
include proxy_params;
proxy_pass http: // unix: / var / www / application / application.ciorap;

Continuați să creați un link către directorul activat pentru site pentru a activa site-ul web.

sudo ln -s / etc / nginx / sites-available / application.conf / etc / nginx / sites-enabled /

Acum reporniți serviciul Nginx ca:

sudo systemctl reporniți nginx

Apoi, trebuie să creăm un fișier unitate systemd pentru a servi aplicația.

sudo nano / etc / systemd / system / application.serviciu
[Unitate]
Descriere = aplicație.service - O aplicație Flask rulată cu Gunicorn.
După = rețea.ţintă
[Serviciu]
Utilizator = www-data
Group = www-data
WorkingDirectory = / var / www / application /
ExecStart = / usr / bin / gunicorn --workers 3 --bind unix: / var / www / application.sock wsgi: aplicație
[Instalare]
WantedBy = multi-utilizator.ţintă

În cele din urmă, salvați fișierul unității, apoi activați și reîncărcați daemonul.

sudo systemctl reporniți aplicația.serviciu
sudo systemctl daemon-reload

Acum puteți accesa aplicația utilizând adresa IP sau adresa specificată în fișierul de configurare nginx. Poate fi necesar să îl adăugați la fișierul gazdei.

curl http: // application
HTTP / 1.1 200 OK
Server: Werkzeug / 0.16.1 Python / 3.8.5)
Data: vineri, 19 martie 2021 10:00:39 GMT
Tip conținut: text / html
Lungime conținut: 25
Ultima modificare: vineri, 19 martie 2021 09:22:47 GMT

Concluzie

Acest tutorial a descris cum să configurați o aplicație Python Flask și să o serviți pe Nginx folosind Gunicorn. Luați în considerare documentația individuală pentru a afla mai multe despre serviciile discutate în acest tutorial.

How to reverse Mouse and Touchpads scrolling direction in Windows 10
Mouse and Touchpads not only make computing easy but more efficient and less time-consuming. We cannot imagine a life without these devices, but still...
How to change Mouse pointer and cursor size, color & scheme on Windows 10
The mouse pointer and cursor in Windows 10 are very important aspects of the operating system. This can be said for other operating systems as well, s...
Motoare de jocuri gratuite și open source pentru dezvoltarea jocurilor Linux
Acest articol va acoperi o listă de motoare de jocuri gratuite și open source care pot fi utilizate pentru dezvoltarea jocurilor 2D și 3D pe Linux. Ex...