Nginx

Sådan bruges Nginx med Flask.

Sådan bruges Nginx med Flask.
Python er et fantastisk, let at lære og alsidigt programmeringssprog, og med rammer som Django og Flask kan vi bruge det til at oprette fuldgyldige webapplikationer. Når vi opretter en webapplikation ved hjælp af biblioteker og rammer som f.eks. Flask, er vi nødt til at være vært for den på en server og udsætte den for offentligheden. Denne vejledning diskuterer, hvordan du hoster din webapplikation på en server, der kører Nginx ved hjælp af Gunicorn. Inden vi kommer i gang med Flask og Gunicorn, skal du sikre dig, at du opfylder følgende krav:

Opsætning af serveren

Lad os nu begynde at indstille det servermiljø, som vi skal bruge til at være vært for vores server. Denne tutorial bruger Ubuntu Server. Start med at opdatere lagrene og installere Python3 og Pip.

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

Dernæst skal vi oprette en mappe til at gemme projektet.

sudo mkdir / var / www / applikation
cd / var / www / applikation

Skift katalogejerskab og tilladelser:

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

Derefter skal du installere pakkerne ved hjælp af apt (flask og Gunicorn)

sudo apt-get install python3-kolbe python3-gunicorn

Lad os nu fortsætte med at initialisere en kolbeapplikation. Start med at oprette main.py-holder applikationen og wsgi.py, som får applikationen til at køre.

sudo touch main.py wsgi.py

Rediger hovedmenuen.py-fil, og opsæt din Flask-applikation og alle ruterne. Da denne vejledning ikke er en Flask guide, opretter vi en grundlæggende rute og en hej verdensbesked.

fra kolbeimport Kolbe
app = kolbe (__ navn__)
@app.rute("/")
def hjem ():
Vend tilbage "

Nginx & Gunicorn

"

Rediger wsgi.py-fil og tilføj koden for at importere appen, og kør som:

fra hovedimportappen
hvis __name__ == "__main__":
app.kør (debug = True)

Endelig test om den er i gang ved at kalde kolben som:

$ kolbe køre
* Miljø: produktion
ADVARSEL: Dette er en udviklingsserver. Brug det ikke i en produktionsinstallation.
Brug en produktions-WSGI-server i stedet.
* Fejlfindingstilstand: Fra
* Kører på http: // 127.0.0.1: 5000 / (Tryk på CTRL + C for at afslutte)

Prøv at få adgang til applikationen på http: // localhost: 5000.

Opsætning af gunicorn

Når vores applikation kører, kan vi bruge Gunicorn til at teste applikationen ved hjælp af kommandoerne:

$ sudo gunicorn - arbejdere 5 wsgi: app
[2021-03-19 09:19:34 +0000] [14047] [INFO] Start gunicorn 20.0.4
[2021-03-19 09:19:34 +0000] [14047] [INFO] Lytter på: http: // 127.0.0.1: 8000 (14047)
[2021-03-19 09:19:34 +0000] [14047] [INFO] Brug af medarbejder: synkronisering
[2021-03-19 09:19:34 +0000] [14049] [INFO] Opstartsarbejder med pid: 14049
[2021-03-19 09:19:34 +0000] [14050] [INFO] Startarbejder med pid: 14050
[2021-03-19 09:19:34 +0000] [14051] [INFO] Startarbejder med pid: 14051
[2021-03-19 09:19:34 +0000] [14052] [INFO] Startarbejder med pid: 14052
[2021-03-19 09:19:35 +0000] [14053] [INFO] Startarbejder med pid: 14053

Ovenstående kommandoer kører kolbeapplikationen ved hjælp af Gunicorn ved hjælp af det specificerede antal medarbejdere. Vi kalder derefter filen wsgi: app, som er filen og forekomsten af ​​den applikation, der skal køres.

Når du har applikationen kørende ved hjælp af Gunicorn, skal du trykke på CTRL + C for at stoppe serveren og konfigurere Nginx.

Brug nedenstående kommandoer til at installere og køre Nginx.

sudo apt-get install nginx -y
sudo systemctl start nginx
sudo systemctl aktiver nginx

Det næste trin er at redigere Nginx-konfigurationen i det stedbaserede bibliotek og tilføje serverblokken. Overvej følgende konfiguration. Skift applikationen til navnet på dit projekt.

sudo nano / etc / nginx / sites-tilgængelig / applikation.konf
server
lyt 80;
applikation til servernavn
access_log / var / log / nginx / applikation.adgang.log;
error_log / var / log / nginx / appliation.fejl.log;
Beliggenhed /
inkluderer proxy_params;
proxy_pass http: // unix: / var / www / applikation / applikation.sok;

Fortsæt med at oprette et link til det stedbaserede bibliotek for at aktivere webstedet.

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

Genstart nu Nginx-tjenesten som:

sudo systemctl genstart nginx

Dernæst skal vi oprette en systemd-enhedsfil til at betjene applikationen.

sudo nano / etc / systemd / system / application.service
[Enhed]
Beskrivelse = anvendelse.service - En kolbe-applikation kørt med Gunicorn.
Efter = netværk.mål
[Service]
Bruger = www-data
Gruppe = www-data
WorkingDirectory = / var / www / applikation /
ExecStart = / usr / bin / gunicorn - arbejdere 3 - bind unix: / var / www / application.sok wsgi: app
[Installere]
WantedBy = flerbruger.mål

Til sidst skal du gemme enhedsfilen og derefter aktivere og genindlæse dæmonen.

sudo systemctl genstart applikation.service
sudo systemctl daemon-reload

Nu kan du få adgang til applikationen ved hjælp af IP-adressen eller den adresse, der er angivet i nginx-konfigurationsfilen. Du skal muligvis føje den til værtsfilen.

krølle http: // applikation
HTTP / 1.1.200 OK
Server: Werkzeug / 0.16.1 Python / 3.8.5)
Dato: Fre, 19. marts 2021 10:00:39 GMT
Indholdstype: tekst / html
Indholdslængde: 25
Sidst ændret: Fre, 19. mar 2021 09:22:47 GMT

Konklusion

Denne vejledning gik over, hvordan man opretter en Python Flask-applikation og serverer den over Nginx ved hjælp af Gunicorn. Overvej den enkelte dokumentation for at lære mere om de tjenester, der er diskuteret i denne vejledning.

Mus Remap dine museknapper forskelligt til anden software med X-Mouse Button Control
Remap dine museknapper forskelligt til anden software med X-Mouse Button Control
Måske har du brug for et værktøj, der kan ændre din muses kontrol med hver applikation, du bruger. Hvis dette er tilfældet, kan du prøve en applikatio...
Mus Microsoft Sculpt Touch Wireless Mouse Review
Microsoft Sculpt Touch Wireless Mouse Review
Jeg har for nylig læst om Microsoft Sculpt Touch trådløs mus og besluttede at købe den. Efter at have brugt det et stykke tid besluttede jeg at dele m...
Mus AppyMouse pegefelt på skærmen og musemarkør til Windows-tablets
AppyMouse pegefelt på skærmen og musemarkør til Windows-tablets
Tabletbrugere savner ofte musemarkøren, især når de er vante til at bruge bærbare computere. Touchscreen-smartphones og tablets har mange fordele, og ...