Kako koristiti Flask ili Bottle s Nginxom?
Ostavite poruku
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.


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






