Nginx

Kako uporabljati Nginx z bučko.

Kako uporabljati Nginx z bučko.
Python je odličen, enostaven za učenje in vsemogočen programski jezik, z okvirji, kot sta Django in Flask, pa ga lahko uporabimo za ustvarjanje polnopravnih spletnih aplikacij. Ko enkrat izdelamo spletno aplikacijo z uporabo knjižnic in ogrodja, kot je Flask, jo moramo gostiti na strežniku in jo izpostaviti javnosti. Ta vadnica razpravlja o tem, kako gostiti svojo spletno aplikacijo na strežniku, na katerem se izvaja Nginx, s pomočjo Gunicorn. Preden začnemo uporabljati Flask in Gunicorn, zagotovite, da izpolnjujete naslednje zahteve:

Nastavitev strežnika

Začnimo zdaj z nastavitvijo strežniškega okolja, ki ga bomo uporabili za gostovanje našega strežnika. Ta vadnica uporablja strežnik Ubuntu. Začnite s posodobitvijo repozitorijev in namestitvijo Python3 in Pip.

posodobitev sudo apt-get
sudo apt-get upgrade -y
sudo apt-get namestite python3 python3-pip -y

Nato moramo ustvariti imenik za shranjevanje projekta.

sudo mkdir / var / www / application
cd / var / www / application

Spremenite lastništvo in dovoljenja imenika:

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

Nato namestite pakete z uporabo apt (bučka in Gunicorn)

sudo apt-get namestite python3-bučko python3-gunicorn

Zdaj nadaljujemo z inicializacijo bučke. Začnite z ustvarjanjem glavnega.py-drži aplikacijo-in wsgi.py, ki bo zagnal aplikacijo.

sudo touch glavni.py wsgi.py

Uredite glavno.py in nastavite aplikacijo Flask in vse poti. Ker ta vadnica ni vodnik za bučke, bomo nastavili osnovno pot in sporočilo o zdravem svetu.

iz bučke uvoz Bučka
app = bučka (__ ime__)
@app.pot ("/")
def home ():
vrnitev "

Nginx & Gunicorn

"

Uredite wsgi.py in dodajte kodo za uvoz aplikacije ter zaženite kot:

iz glavne aplikacije za uvoz
če je __name__ == "__glavna__":
app.zaženi (odpravljanje napak = True)

Na koncu preizkusite, ali deluje in pokličite bučko kot:

$ bučka teče
* Okolje: proizvodnja
OPOZORILO: To je razvojni strežnik. Ne uporabljajte ga v proizvodni uvedbi.
Namesto tega uporabite produkcijski strežnik WSGI.
* Način za odpravljanje napak: izklopljen
* Deluje na http: // 127.0.0.1: 5000 / (za izhod pritisnite CTRL + C)

Poskusite dostopati do aplikacije na http: // localhost: 5000.

Nastavitev Gunicorna

Ko se naša aplikacija uspešno zažene, lahko z Gunicorn preizkusimo aplikacijo z ukazi:

$ sudo gunicorn - delavci 5 wsgi: app
[2021-03-19 09:19:34 +0000] [14047] [INFO] Začetni gunicorn 20.0.4
[2021-03-19 09:19:34 +0000] [14047] [INFO] Poslušanje na: http: // 127.0.0.1: 8000 (14047)
[2021-03-19 09:19:34 +0000] [14047] [INFO] Uporaba delavca: sinh
[2021-03-19 09:19:34 +0000] [14049] [INFO] Zagonski delavec s pid: 14049
[2021-03-19 09:19:34 +0000] [14050] [INFO] Zagonski delavec s pid: 14050
[2021-03-19 09:19:34 +0000] [14051] [INFO] Zagonski delavec s pid: 14051
[2021-03-19 09:19:34 +0000] [14052] [INFO] Zagonski delavec s pid: 14052
[2021-03-19 09:19:35 +0000] [14053] [INFO] Zagonski delavec s pid: 14053

Zgornji ukazi zaženejo aplikacijo bučke z uporabo Gunicorn z uporabo določenega števila delavcev. Nato pokličemo datoteko wsgi: app, ki je datoteka in primerek aplikacije, ki jo je treba zagnati.

Ko zaženete aplikacijo z Gunicorn, pritisnite CTRL + C, da zaustavite strežnik in nastavite Nginx.

Uporabite spodnje ukaze za namestitev in zagon Nginxa.

sudo apt-get namestite nginx -y
sudo systemctl start nginx
sudo systemctl omogoči nginx

Naslednji korak je urejanje konfiguracije Nginx v imeniku, ki podpira spletna mesta, in dodajanje strežniškega bloka. Upoštevajte naslednjo konfiguracijo. Spremenite aplikacijo v ime vašega projekta.

sudo nano / etc / nginx / sites-available / application.conf
strežnik
poslušaj 80;
ime strežnika;
access_log / var / log / nginx / application.dostop.dnevnik;
error_log / var / log / nginx / application.napaka.dnevnik;
lokacija /
vključujejo proxy_params;
proxy_pass http: // unix: / var / www / application / application.nogavica;

Nadaljujte in ustvarite povezavo do imenika, ki omogoča spletno mesto, da omogočite spletno mesto.

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

Zdaj znova zaženite storitev Nginx kot:

sudo systemctl znova zaženite nginx

Nato moramo ustvariti datoteko sistemske enote, ki bo služila aplikaciji.

sudo nano / etc / systemd / system / application.storitev
[Enota]
Opis = prijava.storitev - aplikacija Flask, zagnana z Gunicorn.
Po = omrežje.cilj
[Storitev]
Uporabnik = www-data
Skupina = www-podatki
WorkingDirectory = / var / www / application /
ExecStart = / usr / bin / gunicorn --workers 3 --bind unix: / var / www / application.nogavica wsgi: app
[Namesti]
WantedBy = več uporabnikov.cilj

Na koncu shranite datoteko enote, nato omogočite in znova naložite demon.

sudo systemctl vnovični zagon aplikacije.storitev
sudo systemctl daemon-reload

Zdaj lahko do aplikacije dostopate z uporabo naslova IP ali naslova, navedenega v konfiguracijski datoteki nginx. Morda ga boste morali dodati v datoteko gostitelja.

curl http: // aplikacija
HTTP / 1.1 200 OK
Strežnik: Werkzeug / 0.16.1 Python / 3.8.5)
Datum: petek, 19. marec 2021 10:00:39 GMT
Content-Type: besedilo / html
Dolžina vsebine: 25
Zadnja sprememba: petek, 19. marec 2021 09:22:47 GMT

Zaključek

V tej vadnici je bilo opisano, kako nastaviti aplikacijo Python Flask in jo uporabljati prek Nginxa z uporabo Gunicorn. Če želite izvedeti več o storitvah, opisanih v tej vadnici, si oglejte posamezno dokumentacijo.

Kako razviti igro na Linuxu
Pred desetletjem le malo uporabnikov Linuxa napoveduje, da bo njihov najljubši operacijski sistem nekoč priljubljena igralna platforma za komercialne ...
Odprtokodna vrata komercialnih igralnih sistemov
Brezplačne, odprtokodne in medplatformacijske igre, ki jih lahko uporabite za igranje starih, pa tudi nekaterih dokaj nedavnih naslovov iger. V tem čl...
Najboljše igre ukazne vrstice za Linux
Ukazna vrstica ni le vaš največji zaveznik pri uporabi Linuxa - lahko je tudi vir zabave, saj jo lahko uporabljate za igranje številnih zabavnih iger,...