Dom - Članak - Detalji

Kako koristiti Flask ili Bottle s Nginxom?

Liam Martinez
Liam Martinez
Liam je utjecaj na društvene medije. Ima veliku sljedeću i često promovira Nawas Termos šalice, od nehrđajućeg - čeličnih šalica za kavu do dječjeg termos šalica, do njegove publike, naglašavajući proizvode visoke kvalitete marke.

Bok tamo! Ako se bavite web razvojem, vjerojatno ste čuli za Flask and Bottle. Ovi lagani Python web okviri super su zgodni za izradu web aplikacija. A kada je riječ o njihovoj implementaciji, Nginx je web poslužitelj najboljeg izbora. Kao dobavljač Flask and Bottle, ovdje sam da vas provedem kroz kako koristiti Flask ili Bottle s Nginxom.

Zašto kombinirati bocu/bocu s Nginxom?

Prvo, razgovarajmo o tome zašto biste htjeli koristiti Flask ili Bottle s Nginxom. Flask i Bottle izvrsni su za brzu izradu web aplikacija, ali nisu dizajnirani da sami obrađuju veliki broj istodobnih zahtjeva. Više su poput jednostavnih mehanizama koji pokreću funkcionalnost vaše web-aplikacije.

Nginx je, s druge strane, web poslužitelj visokih performansi. Može učinkovito podnijeti tonu istodobnih veza. Upotrebom Nginxa ispred vaše aplikacije Flask ili Bottle možete rasteretiti zadatke poput posluživanja statičkih datoteka, rukovanja HTTP zahtjevima i balansiranja opterećenja. Na taj se način vaša Flask ili Bottle aplikacija može usredotočiti na ono što radi najbolje: obradu poslovne logike.

Postavljanje boce ili boce

Prije nego što se upustimo u integraciju s Nginxom, provjerimo radi li naša Flask ili Bottle aplikacija.

Stainless Steel Insulated Coffee Pot bestStainless Steel Insulated Coffee Pot

Postavljanje tikvice

Ako koristite Flask, prvo provjerite imate li instalirane Python i Flask. Možete izraditi jednostavnu aplikaciju Flask poput ove:

from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello, World!' if __name__ == '__main__': app.run(host='0.0.0.0', port=5000)

Spremite ovaj kod u datoteku, recimoapp.py. Zatim ga pokrenite pomoćupython app.py. Vaša aplikacija Flask počet će raditihttp://0.0.0.0:5000.

Postavljanje boce

Za Bocu je postupak sličan. Instalirajte Bottle ako već niste. Evo jednostavne aplikacije Boca:

iz rute uvoza boce, pokrenite @route('/') def index(): return 'Pozdrav iz Boce!' pokrenuti (host='0.0.0.0', port=8080)

Spremi ovo kaobottle_app.pyi pokrenuti ga spython bottle_app.py. Vaša aplikacija Boca bit će dostupna nahttp://0.0.0.0:8080.

Instaliranje i konfiguriranje Nginxa

Sada, pokrenimo Nginx. Proces instalacije razlikuje se ovisno o vašem operativnom sustavu. U Ubuntuu možete koristiti sljedeću naredbu:

sudo apt-get ažuriranje sudo apt-get instalirajte nginx

Nakon instalacije pokrenite Nginx koristećisudo systemctl pokrenite nginx. Njegov status možete provjeriti pomoćusudo systemctl status nginx.

Konfiguriranje Nginx-a za bocu ili bocu

Nginx koristi konfiguracijske datoteke kako bi definirao kako bi trebao obrađivati ​​zahtjeve. Morat ćete izraditi novu konfiguracijsku datoteku za svoju aplikaciju Flask ili Bottle.

Stvorite novu datoteku u/etc/nginx/sites - dostupno/imenik. Na primjer, ako koristite Flask, možete stvoriti datoteku pod nazivomflask_app.conf:

poslužitelj { slušaj 80; server_name your_domain_or_ip; lokacija / { proxy_pass http://127.0.0.1:5000; proxy_set_header Host $host; proxy_set_header X - Stvarni - IP $remote_addr; proxy_set_header X - Proslijeđeno - Za $proxy_add_x_forwarded_for; }}

Ako koristite Bocu, promijeniteproxy_passdohttp://127.0.0.1:8080i spremite datoteku kaoboca_app.conf.

Stvorite simboličku vezu nastranice - omogućenoimenik:

sudo ln -s /etc/nginx/sites - dostupno/flask_app.conf /etc/nginx/sites - omogućeno/

Ili za bocu:

sudo ln -s /etc/nginx/sites - dostupno/bottle_app.conf /etc/nginx/sites - omogućeno/

Testirajte Nginx konfiguraciju ssudo nginx -t. Ako nema grešaka, ponovno učitajte Nginx pomoćusudo systemctl ponovno učitaj nginx.

Posluživanje statičkih datoteka

Jedna od sjajnih stvari o Nginxu je njegova sposobnost da učinkovito posluži statičke datoteke. U aplikaciji Flask ili Bottle možda imate statičke elemente kao što su CSS, JavaScript ili slike.

U svojoj Nginx konfiguracijskoj datoteci dodajte novumjestoblok za statičke datoteke. Na primjer:

lokacija /static { alias /path/to/your/static/files; }

Ovo govori Nginxu da posluži datoteke iz navedenog direktorija kada zahtjev započne s/statički.

Balansiranje opterećenja

Ako imate pokrenuto više instanci svoje aplikacije Flask ili Bottle, možete koristiti Nginx za uravnoteženje opterećenja. Evo kako ga možete konfigurirati:

uzvodno flask_apps { server 127.0.0.1:5000; poslužitelj 127.0.0.1:5001; } poslužitelj { slušaj 80; server_name your_domain_or_ip; lokacija / { proxy_pass http://flask_apps; proxy_set_header Host $host; proxy_set_header X - Stvarni - IP $remote_addr; proxy_set_header X - Proslijeđeno - Za $proxy_add_x_forwarded_for; }}

Ova konfiguracija distribuira dolazne zahtjeve između dvije instance vaše Flask aplikacije koja radi na portovima 5000 i 5001.

Korištenje obrnutog proxyja

Nginx u ovoj postavci djeluje kao obrnuti proxy. Obrnuti proxy nalazi se ispred vaše aplikacije Flask ili Bottle i prosljeđuje joj zahtjeve. Također pomaže u skrivanju unutarnje strukture vaše aplikacije od vanjskog svijeta.

Theproxy_passdirektiva u Nginx konfiguraciji je ono što omogućuje da se to dogodi. Uzima dolazne HTTP zahtjeve i šalje ih odgovarajućoj aplikaciji Flask ili Bottle koja se izvodi na lokalnom računalu.

Praćenje i rješavanje problema

Nakon što ste sve postavili, važno je pratiti svoju aplikaciju Flask/Bottle i Nginx. Možete koristiti alate poputrepza pregled zapisa pristupa Nginxu i pogrešaka:

sudo tail -f /var/log/nginx/access.log sudo tail -f /var/log/nginx/error.log

Ako naiđete na probleme, ovi vam zapisnici mogu dati vrijedne informacije o tome što nije u redu. Na primjer, ako vidite502 Loš pristupnikpogreške, to može značiti da vaša aplikacija Flask ili Bottle ne radi ispravno.

Naša ponuda proizvoda

Kao dobavljač boca i boca, ne zaustavljamo se samo na pružanju smjernica. Također nudimo visokokvalitetne proizvode povezane s ekosustavom Flask and Bottle. Na primjer, ako tražite sjajan način da održite kavu toplom dok ste zauzeti kodiranjem, pogledajte našPosuda za kavu izolirana od nehrđajućeg čelika. Savršeno je za one duge sesije kodiranja.

Kontaktirajte nas za nabavu

Ako ste zainteresirani za naša rješenja Flask and Bottle ili ako imate pitanja o njihovoj upotrebi s Nginxom, voljeli bismo čuti vaše mišljenje. Bilo da ste mali startup ili veliko poduzeće, možemo vam pružiti podršku i proizvode koji su vam potrebni. Obratite nam se da započnemo raspravu o nabavi. Ovdje smo da vam pomognemo da najbolje iskoristite svoje projekte web razvoja.

Reference

  • Flask Dokumentacija
  • Dokumentacija boce
  • Nginx dokumentacija

Pošaljite upit

Popularne objave na blogu