- En server med SSH-adgang
- Nginx webserver kører på serveren (installation dækket)
- Python
- Du er en sudo-bruger.
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 opdateringsudo 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 / applikationcd / 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-gunicornLad 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.pyRediger 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 Kolbeapp = 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 hovedimportappenhvis __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 -ysudo 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.konfserver
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 nginxDernæ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.servicesudo 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: // applikationHTTP / 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.