- En server med SSH-tilgang
- Nginx webserver som kjører på serveren (installasjon dekket)
- Python
- Du er en sudo-bruker.
Sette opp serveren
La oss nå begynne å sette servermiljøet som vi skal bruke til å være vert for serveren vår. Denne opplæringen bruker Ubuntu Server. Start med å oppdatere lagringsplassene og installere Python3 og Pip.
sudo apt-get oppdateringsudo apt-få oppgradering -y
sudo apt-get install python3 python3-pip -y
Deretter må vi lage en katalog for å lagre prosjektet.
sudo mkdir / var / www / applikasjoncd / var / www / applikasjon
Endre katalogeierskap og tillatelser:
sudo chown -R www-data: www-data / var / www / application /Deretter installerer du pakkene ved hjelp av apt (flask og Gunicorn)
sudo apt-get install python3-kolbe python3-gunicornLa oss nå fortsette med å initialisere en kolbeapplikasjon. Start med å lage hoved.py-holder applikasjonen og wsgi.py, som vil få applikasjonen til å kjøre.
sudo touch main.py wsgi.pyRediger hovedmenyen.py-fil og sett opp Flask-applikasjonen og alle rutene. Siden denne opplæringen ikke er en Flask guide, vil vi sette opp en grunnleggende rute og en hei verdensmelding.
fra kolbeimport Kolbeapp = kolbe (__ navn__)
@app.rute("/")
def hjem ():
komme tilbake "
Nginx & Gunicorn
"Rediger wsgi.py-fil og legg til koden for å importere appen, og kjør som:
fra hovedimportappenhvis __name__ == "__main__":
app.kjør (feilsøk = sann)
Til slutt, test om den er i gang ved å ringe kolben som:
$ kolbe kjøre* Miljø: produksjon
ADVARSEL: Dette er en utviklingsserver. Ikke bruk den i en produksjonsutrulling.
Bruk en produksjons WSGI-server i stedet.
* Feilsøkingsmodus: av
* Kjører på http: // 127.0.0.1: 5000 / (Trykk CTRL + C for å avslutte)
Prøv å få tilgang til applikasjonen på http: // localhost: 5000.
Sette opp gunicorn
Når applikasjonen vår har kjørt, kan vi bruke Gunicorn til å teste applikasjonen ved hjelp av kommandoene:
$ sudo gunicorn - arbeidere 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] Bruker arbeider: synk
[2021-03-19 09:19:34 +0000] [14049] [INFO] Oppstartsarbeider med pid: 14049
[2021-03-19 09:19:34 +0000] [14050] [INFO] Oppstartsarbeider med pid: 14050
[2021-03-19 09:19:34 +0000] [14051] [INFO] Oppstartsarbeider med pid: 14051
[2021-03-19 09:19:34 +0000] [14052] [INFO] Oppstartsarbeider med pid: 14052
[2021-03-19 09:19:35 +0000] [14053] [INFO] Oppstartsarbeider med pid: 14053
Ovennevnte kommandoer kjører kolbeapplikasjonen ved hjelp av Gunicorn ved hjelp av det angitte antall arbeidere. Vi kaller deretter filen wsgi: app, som er filen og forekomsten av applikasjonen som skal kjøres.
Når du har applikasjonen kjørt med Gunicorn, trykker du CTRL + C for å stoppe serveren og sette opp Nginx.
Bruk kommandoene nedenfor for å installere og kjøre Nginx.
sudo apt-get install nginx -ysudo systemctl start nginx
sudo systemctl aktiver nginx
Neste trinn er å redigere Nginx-konfigurasjonen i den nettstedsaktiverte katalogen og legge til serverblokken. Vurder følgende konfigurasjon. Endre applikasjonen til navnet på prosjektet.
sudo nano / etc / nginx / nettsteder-tilgjengelig / applikasjon.konfserver
hør 80;
server_name applikasjon;
access_log / var / log / nginx / applikasjon.adgang.Logg;
error_log / var / log / nginx / appliation.feil.Logg;
plassering /
inkluderer proxy_params;
proxy_pass http: // unix: / var / www / application / application.sokk;
Fortsett med å opprette en lenke til den nettstedsaktiverte katalogen for å aktivere nettstedet.
sudo ln -s / etc / nginx / nettsteder-tilgjengelig / applikasjon.conf / etc / nginx / nettsteder-aktivert /Start Nginx-tjenesten på nytt som:
sudo systemctl start nginx på nyttDeretter må vi lage en systemd enhetsfil for å betjene applikasjonen.
sudo nano / etc / systemd / system / applikasjon.service[Enhet]
Beskrivelse = applikasjon.service - Et Flask-program som kjøres med Gunicorn.
Etter = nettverk.mål
[Service]
Bruker = www-data
Gruppe = www-data
WorkingDirectory = / var / www / applikasjon /
ExecStart = / usr / bin / gunicorn --workers 3 - bind unix: / var / www / application.sokk wsgi: app
[Installere]
WantedBy = flerbruker.mål
Til slutt lagrer du enhetsfilen, aktiverer og laster daemon på nytt.
sudo systemctl starte programmet på nytt.servicesudo systemctl daemon-reload
Nå kan du få tilgang til applikasjonen ved hjelp av IP-adressen eller adressen som er angitt i nginx-konfigurasjonsfilen. Du må kanskje legge den til vertsfilen.
krølle http: // applikasjonHTTP / 1.1200 OK
Server: Werkzeug / 0.16.1 Python / 3.8.5)
Dato: Fre, 19. mars 2021 10:00:39 GMT
Innholdstype: tekst / html
Innholdslengde: 25
Sist endret: fre, 19. mars 2021 09:22:47 GMT
Konklusjon
Denne opplæringen gikk over hvordan du setter opp et Python Flask-program og serverer det over Nginx ved hjelp av Gunicorn. Vurder den individuelle dokumentasjonen for å lære mer om tjenestene som er diskutert i denne opplæringen.