Hvordan du bruker nginx med kolbe.

Hvordan du bruker nginx med kolbe.
Python er et flott, lettlært og mektig programmeringsspråk, og med rammer som Django og Flask kan vi bruke det til å lage fullverdige webapplikasjoner. Når vi har opprettet en webapplikasjon ved hjelp av biblioteker og rammer som Flask, må vi være vertskap for den på en server og utsette den for publikum. Denne opplæringen diskuterer hvordan du er vert for webapplikasjonen din på en server som kjører Nginx ved hjelp av Gunicorn. Før vi kommer i gang med Flask og Gunicorn, må du sørge for at du oppfyller følgende krav:
  • 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 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.