Nginx

Kako koristiti Nginx s tikvicom.

Kako koristiti Nginx s tikvicom.
Python je izvrstan, lagan za učenje i svemoćan programski jezik, a s okvirima kao što su Django i Flask, možemo ga koristiti za stvaranje punopravnih web aplikacija. Jednom kada stvorimo web aplikaciju pomoću knjižnica i okvira kao što je Flask, moramo je smjestiti na poslužitelj i izložiti javnosti. Ovaj vodič govori o tome kako hostirati svoju web aplikaciju na poslužitelju s Nginxom pomoću Gunicorna. Prije nego što započnemo s tikvicom i gunicorn, pobrinite se da ispunjavate sljedeće zahtjeve:

Postavljanje poslužitelja

Počnimo sada postavljati poslužiteljsko okruženje koje ćemo koristiti za hostiranje našeg poslužitelja. Ovaj vodič koristi Ubuntu poslužitelj. Započnite ažuriranjem spremišta i instaliranjem Python3 i Pip.

sudo apt-get ažuriranje
sudo apt-get upgrade -y
sudo apt-get instalirati python3 python3-pip -y

Dalje, moramo stvoriti direktorij za pohranu projekta.

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

Promjena vlasništva i dozvola direktorija:

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

Zatim instalirajte pakete koristeći apt (tikvicu i Gunicorn)

sudo apt-get instaliraj python3-tikvicu python3-gunicorn

Krenimo sada s inicijalizacijom aplikacije tikvice. Započnite s izradom glavnog.py-drži aplikaciju-i wsgi.py, što će pokrenuti aplikaciju.

sudo touch glavni.py wsgi.py

Uredite glavno.py datoteku i postavite aplikaciju Flask i sve rute. Budući da ovaj vodič nije vodič za tikvicu, postavit ćemo osnovnu rutu i poruku zdravog svijeta.

iz tikvice uvoz Tikvica
app = tikvica (__ ime__)
@app.ruta ("/")
def home ():
povratak "

Nginx i Gunicorn

"

Uredite wsgi.py datoteku i dodajte kod za uvoz aplikacije i pokrenite kao:

iz glavne aplikacije za uvoz
ako je __name__ == "__glavno__":
app.pokrenite (otklanjanje pogrešaka = True)

Na kraju, testirajte je li pokrenut pozivajući tikvicu kao:

$ tikvica pokrenuta
* Okoliš: proizvodnja
UPOZORENJE: Ovo je razvojni poslužitelj. Nemojte ga koristiti u proizvodnoj implementaciji.
Umjesto toga upotrijebite proizvodni WSGI poslužitelj.
* Način otklanjanja pogrešaka: isključen
* Trčanje na http: // 127.0.0.1: 5000 / (Pritisnite CTRL + C za izlaz)

Pokušajte pristupiti aplikaciji na http: // localhost: 5000.

Postavljanje Gunicorna

Nakon što naša aplikacija bude uspješno pokrenuta, možemo koristiti Gunicorn za testiranje aplikacije pomoću naredbi:

$ sudo gunicorn --radnici 5 wsgi: app
[2021-03-19 09:19:34 +0000] [14047] [INFO] Početni gunicorn 20.0.4
[2021-03-19 09:19:34 +0000] [14047] [INFO] Slušam na: http: // 127.0.0.1: 8000 (14047)
[2021-03-19 09:19:34 +0000] [14047] [INFO] Korištenje radnika: sink
[2021-03-19 09:19:34 +0000] [14049] [INFO] Radnik na dizanju s pid-om: 14049
[2021-03-19 09:19:34 +0000] [14050] [INFO] Radnik na dizanju s pid-om: 14050
[2021-03-19 09:19:34 +0000] [14051] [INFO] Radnik na dizanju s pid-om: 14051
[2021-03-19 09:19:34 +0000] [14052] [INFO] Radnik na dizanju s pid-om: 14052
[2021-03-19 09:19:35 +0000] [14053] [INFO] Radnik na dizanju s pid-om: 14053

Gornje naredbe pokreću aplikaciju tikvice koristeći Gunicorn koristeći navedeni broj radnika. Zatim datoteku nazivamo wsgi: app, koja je datoteka i instanca aplikacije koju treba pokrenuti.

Nakon što pokrenete aplikaciju pomoću Gunicorna, pritisnite CTRL + C da biste zaustavili poslužitelj i postavili Nginx.

Upotrijebite donje naredbe za instaliranje i pokretanje Nginxa.

sudo apt-get instalirati nginx -y
sudo systemctl start nginx
sudo systemctl omogućiti nginx

Sljedeći je korak uređivanje Nginx konfiguracije u direktoriju s omogućenim web lokacijama i dodavanje bloka poslužitelja. Razmotrite sljedeću konfiguraciju. Promijenite aplikaciju u naziv vašeg projekta.

sudo nano / etc / nginx / web stranice dostupne / aplikacija.konf
poslužitelj
slušati 80;
aplikacija ime_poslužitelja;
access_log / var / log / nginx / application.pristup.trupac;
error_log / var / log / nginx / application.pogreška.trupac;
lokacija /
uključuju proxy_params;
proxy_pass http: // unix: / var / www / application / application.čarapa;

Nastavite stvarati vezu do direktorija na kojem je omogućeno web mjesto kako biste omogućili web mjesto.

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

Sada ponovo pokrenite Nginx uslugu kao:

sudo systemctl ponovno pokrenite nginx

Dalje, moramo stvoriti datoteku systemd jedinice koja će služiti aplikaciji.

sudo nano / etc / systemd / system / application.servis
[Jedinica]
Opis = prijava.usluga - aplikacija Flask pokrenuta s Gunicorn-om.
Nakon = mreža.cilj
[Servis]
Korisnik = www-podaci
Grupa = www-podaci
WorkingDirectory = / var / www / application /
ExecStart = / usr / bin / gunicorn --radnici 3 --vezati unix: / var / www / application.čarapa wsgi: app
[Instalirati]
WantedBy = višekorisnički.cilj

Konačno, spremite datoteku jedinice, a zatim omogućite i ponovo učitajte demon.

sudo systemctl ponovno pokretanje aplikacije.servis
sudo systemctl daemon-reload

Sada aplikaciji možete pristupiti pomoću IP adrese ili adrese navedene u konfiguracijskoj datoteci nginx. Možda ćete ga trebati dodati u datoteku hosta.

uvijanje http: // aplikacija
HTTP / 1.1 200 OK
Poslužitelj: Werkzeug / 0.16.1 Python / 3.8.5)
Datum: pet, 19. ožujka 2021. 10:00:39 GMT
Vrsta sadržaja: text / html
Duljina sadržaja: 25
Posljednja izmjena: petak, 19. ožujka 2021. 09:22:47 GMT

Zaključak

Ovaj je vodič prešao o tome kako postaviti aplikaciju Python Flask i poslužiti je preko Nginxa koristeći Gunicorn. Razmotrite pojedinačnu dokumentaciju da biste saznali više o uslugama o kojima se govori u ovom vodiču.

5 najboljih arkadnih igara za Linux
U današnje vrijeme računala su ozbiljni strojevi koji se koriste za igre na sreću. Ako ne uspijete dobiti novi visoki rezultat, znat ćete na što misli...
Bitka za Wesnoth 1.13.6 Razvoj objavljen
Bitka za Wesnoth 1.13.6 objavljeno prošlog mjeseca, šesto je razvojno izdanje u izdanju 1.13.x series i donosi niz poboljšanja, ponajviše korisničkog ...
Kako instalirati League Of Legends na Ubuntu 14.04
Ako ste ljubitelj League of Legends, ovo je prilika za vas da testirate League of Legends. Imajte na umu da je LOL podržan na PlayOnLinux ako ste kori...