- Strežnik z dostopom SSH
- Spletni strežnik Nginx, ki se izvaja na strežniku (namestitev zajeta)
- Python
- Ste uporabnik sudo.
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-getsudo apt-get upgrade -y
sudo apt-get namestite python3 python3-pip -y
Nato moramo ustvariti imenik za shranjevanje projekta.
sudo mkdir / var / www / applicationcd / 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-gunicornZdaj 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.pyUredite 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čkaapp = 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 -ysudo 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.confstrež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 nginxNato 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.storitevsudo 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: // aplikacijaHTTP / 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.