Sette opp serveren
La oss nå begynne å sette servermiljøet som vi skal bruke for å være vertskap for serveren vår. Denne opplæringen bruker Ubuntu -serveren. Begynn med å oppdatere depotene og installere Python3 og Pip.
sudo apt-get oppdatering
sudo apt -get oppgradering -y
sudo apt-get install python3 python3-pip -y
Deretter må vi lage en katalog for å lagre prosjektet.
sudo mkdir/var/www/applikasjon
CD/var/www/applikasjon
Endre katalogseierskap og tillatelser:
sudo chown -r www-data: www-data/var/www/applikasjon/
Neste, installer pakkene med APT (Flask og Gunicorn)
sudo apt-get install python3-kolbe python3-gunicorn
La oss nå fortsette med å initialisere en kolbeapplikasjon. Begynn med å lage hoved.Py-Holds applikasjonen og WSGI.PY, som vil få søknaden til å kjøre.
sudo touch main.Py WSGI.py
Rediger hoveden.PY -fil og sett opp kolbeapplikasjonen og alle rutene. Siden denne opplæringen ikke er en Flaskeguide, vil vi sette opp en grunnleggende rute og en Hello World -melding.
Fra kolbeimportkolbe
app = kolbe (__ name__)
@App.rute("/")
def home ():
komme tilbake "Nginx & Gunicorn
""
Rediger WSGI.py fil og legg til koden i importerte app, og kjør som:
Fra hovedimportappen
if __name__ == "__main__":
app.Kjør (Debug = True)
Til slutt, test om det er i gang ved å ringe Flask som:
$ Kolbe -løp
* Miljø: Produksjon
Advarsel: Dette er en utviklingsserver. Ikke bruk den i en produksjonsdistribusjon.
Bruk en produksjon WSGI -server i stedet.
* Feilsøkingsmodus: Av
* Kjører på http: // 127.0.0.1: 5000/ (trykk CTRL+C for å slutte)
Prøv å få tilgang til applikasjonen på http: // localhost: 5000.
Sette opp Gunicorn
Når søknaden vår har kjørt, kan vi bruke Gunicorn til å teste applikasjonen ved å bruke 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: Synkronisering
[2021-03-19 09:19:34 +0000] [14049] [Info] Startarbeider med PID: 14049
[2021-03-19 09:19:34 +0000] [14050] [Info] Startarbeider med PID: 14050
[2021-03-19 09:19:34 +0000] [14051] [Info] Startarbeider med PID: 14051
[2021-03-19 09:19:34 +0000] [14052] [Info] Startarbeider med PID: 14052
[2021-03-19 09:19:35 +0000] [14053] [Info] Startarbeider med PID: 14053
Ovennevnte kommandoer kjører kolbeapplikasjonen ved hjelp av Gunicorn ved hjelp av det spesifiserte antallet arbeidere. Vi kaller deretter filen WSGI: App, som er filen og forekomsten av applikasjonen som skal kjøres.
Når du har applikasjonen som kjører med Gunicorn, trykk CTRL + C for å stoppe serveren og konfigurere Nginx.
Bruk kommandoene nedenfor for å installere og kjøre Nginx.
sudo apt -get install nginx -y
sudo systemctl start nginx
sudo systemctl aktiver nginx
Neste trinn er å redigere Nginx-konfigurasjonen i den nettstedsaktiverte katalogen og legge til serverblokken. Tenk på følgende konfigurasjon. Endre applikasjonen til navnet på prosjektet ditt.
sudo nano/etc/nginx/nettsteder-tilgjengelig/applikasjon.konf
server
Lytt 80;
server_name -applikasjon;
Access_log/var/log/nginx/applikasjon.adgang.Logg;
error_log/var/log/nginx/applikasjon.feil.Logg;
plassering /
inkluderer proxy_params;
proxy_pass http: // unix:/var/www/applikasjon/applikasjon.sokk;
Fortsett med å opprette en lenke til den nettstedaktiverte katalogen for å aktivere nettstedet.
sudo ln -s/etc/nginx/nettsteder -tilgjengelig/applikasjon.Conf/etc/nginx/nettsteder-aktivert/
Start nå Nginx -tjenesten på nytt som:
sudo SystemCTL omstart Nginx
Deretter må vi opprette en SystemD -enhetsfil for å betjene applikasjonen.
sudo nano/etc/systemd/system/applikasjon.service
[Enhet]
Beskrivelse = søknad.Service - en kolbeapplikasjon kjørt med gunicorn.
Etter = nettverk.mål
[Service]
Bruker = www-data
Gruppe = www-data
WorkingDirectory =/var/www/applikasjon/
ExecStart =/usr/bin/gunicorn -arbeidere 3 --bind unix:/var/www/applikasjon.SOCK WSGI: App
[Installere]
WantedBy = Multi-User.mål
Til slutt, lagre enhetsfilen, aktiver og last inn demonen på nytt.
sudo SystemCTL RESTART -applikasjonen.service
sudo SystemCTL Daemon-Reload
Nå kan du få tilgang til applikasjonen ved hjelp av IP -adressen eller adressen som er spesifisert i Nginx Config -filen. Det kan hende du må legge den til i vertens fil.
krøll http: // applikasjon
Http/1.1 200 OK
Server: Werkzeug/0.16.1 python/3.8.5)
Dato: fre, 19. mars 2021 10:00:39 GMT
Innholdstype: tekst/html
Innholdslengde: 25
Lastmodifisert: fre, 19. mars 2021 09:22:47 GMT
Konklusjon
Denne opplæringen gikk over hvordan du setter opp en Python Flask -applikasjon og serverer den over Nginx ved hjelp av Gunicorn. Vurder den individuelle dokumentasjonen for å lære mer om tjenestene som er diskutert i denne opplæringen.