Si të instaloni Flask me Nginx dhe Gunicorn në Rocky Linux
Flask është një mikrokornizë e shkruar në Python për zhvillimin e aplikacioneve moderne në internet dhe API (Application Programming Interface). Ai bazohet në paketën e veglave Werkzeug dhe shabllonin Jinja2. Në vend të përdorimit të arkitekturës komplekse, Flask është një kornizë e vogël ueb që zgjeron lehtë thelbin dhe është e lehtë për t'u mësuar sepse Flask ka më pak kod. Flask nuk përfshin ORM, por gjithsesi ka veçori interesante si kursimi i URL-ve dhe një motor shabllon.
Gunicorn ose \Green Unicorn\ është një server HTTP WSGI me modalitetin e punës para-fork. Është transmetuar nga projekti Rubys Unicorn. Gunicorn mund të çiftohet me disa korniza ueb, me peshë të lehtë në burimet e serverit dhe të shpejtë. Gunicorn qëndron midis aplikacionit tuaj dhe serverit në internet, kështu që ju mund ta çiftoni Gunicorn me një server në internet si Nginx dhe Apache2.
Në këtë tutorial, ne do të tregojmë se si të instaloni dhe konfiguroni Flask Python Web Framework me Gunicorn dhe Nginx në serverin Rocky Linux. Ju gjithashtu do të mësoni se si të vendosni Supervisord si një menaxher procesi për menaxhimin e aplikacionit Python Flask.
Parakushtet
Për të përfunduar këtë tutorial, do t'ju duhen disa nga kërkesat e mëposhtme:
- Një server Rocky Linux - Mund të përdorni të dy Rocky Linux v8 ose v9 - Desktop ose Server.
- Një përdorues jo-root me privilegje të administratorit sudo root.
- Një emër i rremë domeni për zhvillimin lokal.
Instalimi i varësive
Në hapin e parë, do të instaloni disa varësi të paketave që do të përdoren për instalimin dhe vendosjen e Flask Web Framework. Kjo përfshin të tilla si Python Pip, Nginx dhe Supervisord.
Të gjitha këto varësi të paketave janë të disponueshme në depon e Rocky Linux, mund ta instaloni lehtësisht përmes komandës DNF.
Së pari, sigurohuni që depoja EPEL të jetë e instaluar në sistemin tuaj. ose thjesht mund ta instaloni dhe aktivizoni nëpërmjet komandës dnf më poshtë.
sudo dnf install epel-release
Tani, instaloni disa paketa python python3-pip dhe python3-devel dhe përpiluesin GCC duke përdorur komandën dnf më poshtë. Këto paketa do të përdoren për instalimin e paketave Python.
sudo dnf install python3-pip python3-devel gcc
Kur ju kërkohet të konfirmoni instalimin, futni y dhe shtypni ENTER për të vazhduar.
Më pas, ekzekutoni një komandë tjetër dnf më poshtë për të instaluar serverin e internetit Nginx dhe paketat e mbikëqyrësit. Nginx këtu do të përdoret si një përfaqësues i kundërt për projektin tuaj Flask dhe mbikëqyrësi do të përdoret për të menaxhuar procesin e aplikimit tuaj në Flask.
sudo dnf install nginx supervisor
Fut y dhe shtyp ENTER për të konfirmuar instalimin.
Tani, filloni dhe aktivizoni shërbimin Nginx përmes komandës systemctl më poshtë. Më pas, verifikoni shërbimin Nginx për t'u siguruar që funksionon.
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx
Do ta shihni daljen si më poshtë - Shërbimi Nginx është aktivizuar dhe do të ekzekutohet automatikisht në nisjen e sistemit. Dhe statusi i shërbimit Nginx po funksionon.
Dhe për shërbimin e mbikëqyrësit, ekzekutoni komandën e mëposhtme për ta nisur dhe aktivizuar atë. Më pas, verifikoni statusin e shërbimit të mbikëqyrësit për t'u siguruar që funksionon.
sudo systemctl start supervisord
sudo systemctl enable supervisord
sudo systemctl status supervisord
Do të shihni se shërbimi i mbikëqyrësit është aktivizuar dhe do të ekzekutohet automatikisht në nisje. Dhe statusi i shërbimit mbikëqyrës po funksionon.
Konfigurimi i përdoruesit
Pas instalimit të varësive të paketës, tani do të konfiguroni një përdorues të ri që do të përdoret për të ekzekutuar projektin Flask.
Ekzekutoni komandën e mëposhtme për të krijuar një përdorues të ri dhe për të vendosur fjalëkalimin. Në këtë shembull, ju do të krijoni përdorues të ri alice.
Kur ju kërkohet të krijoni një fjalëkalim të ri, futni fjalëkalimin tuaj dhe përsërisni.
sudo useradd -m -s /bin/bash alice
sudo passwd alice
Tani, ekzekutoni komandën e mëposhtme për të shtuar përdoruesin alice në grupin rrota në mënyrë që përdoruesi të mund të ekzekutojë komandën sudo.
sudo usermod -aG wheel alice
Së fundi, hyni te përdoruesi i ri dhe ekzekutoni komandën sudo për të verifikuar privilegjet e rrënjës. Futni fjalëkalimin tuaj kur të kërkohet.
su - alice
sudo su
Ju duhet të shihni guaskën rrënjë të makinës tuaj Rocky Linux.
Vendosja e mjedisit virtual të Python
Në këtë hap, do të konfiguroni mjedisin virtual Python për kornizën ueb Flask.
Hyni si përdoruesi juaj duke përdorur komandën e mëposhtme.
su - alice
Krijo një direktori të re instalimi Flask /var/www/myflask duke përdorur komandën e mëposhtme mkdir.
sudo mkdir -p /var/www/myflask
Ndryshoni pronësinë dhe lejen e drejtorisë së instalimit të Flask duke përdorur komandën e mëposhtme. Pronësia duhet të jetë nën përdoruesin alice me lejen 755.
sudo chown -R alice:alice /var/www/myflask
sudo chmod 755 /var/www/myflask
Tani, zhvendosni direktorinë tuaj të punës në direktorinë e instalimit të Flask /var/www/myflask dhe krijoni një mjedis të ri virtual Python nëpërmjet komandës python më poshtë.
cd /var/www/myflask
python3 -m venv myenv
Do të shihni se është krijuar një drejtori e re myenv.
Më pas, aktivizoni mjedisin virtual Python duke përdorur komandën e mëposhtme. Nëse aktivizohet, do të shihni se formati i kërkesës është ndryshuar në të tillë si (myenv [email .
source myenv/bin/activate
Për të çaktivizuar nga mjedisi virtual, duhet të ekzekutoni komandën e mëposhtme.
deactivate
Instalimi i Flask dhe Gunicorn
Përpara se të instaloni Flask, sigurohuni që jeni në mjedisin virtual. ose thjesht mund të ekzekutoni komandën e mëposhtme për t'u identifikuar.
su - alice
cd /var/www/myflask
source myenv/bin/activate
Tani, instaloni Flask dhe Gunicorn përmes komandës pip më poshtë. Kjo do të instalojë Flask dhe Gunicorn në mjedisin virtual, jo në të gjithë sistemin.
pip3 install flask gunicorn
Pasi të instalohet Flask dhe Gunciron, jeni gati të krijoni aplikacionin e parë duke përdorur Flask Web Framework.
Krijimi i aplikacionit të parë të balonës
Përpara se të filloni të krijoni një aplikacion Flask, sigurohuni që jeni në mjedisin tuaj virtual Python.
Krijoni një skedar të ri Python myflask.py duke përdorur redaktorin tuaj të preferuar. Në këtë shembull, ne do të përdorim nano editor.
nano myflask.py
Tani shtoni skriptin e mëposhtëm në skedar.
# myflask.py
from flask import Flask, render_template # importing the render_template function
app = Flask(__name__)
# route to index page
@app.route("/")
def hello():
return render_template('index.html')
if __name__ == "__main__":
app.run(host='0.0.0.0')
Ruani skedarin dhe dilni nga redaktori kur të keni mbaruar.
Më pas, krijoni një drejtori të re shabllone për skedarët tuaj statikë dhe krijoni një skedar të ri index.html sipër tij.
mkdir -p templates
nano templates/index.html
Shtoni skriptin e mëposhtëm HTML në skedar.
<html>
<body>
<h1><center>Hello Flask - Rocky Linux!</center></h1>
</body>
</html>
Ruani skedarin dhe dilni nga redaktori kur të keni mbaruar.
Tani ekzekutoni skriptin Python Flask myflask.py duke përdorur komandën e mëposhtme. Kjo do të ekzekutojë aplikacionin tuaj Flask në modalitetin e zhvillimit, duke ekzekutuar adresën IP të serverit me portin e paracaktuar 5000.
python3 myflask.py
Më poshtë është një rezultat i ngjashëm që do të merrni.
Më pas, hapni një terminal tjetër dhe ekzekutoni komandën curl më poshtë për të hyrë në aplikacionin tuaj Flask. Do të shihni skriptin e skedarit index.html që keni krijuar.
curl localhost:5000
Tani shtypni Ctrl+c për të përfunduar aplikacionin tuaj Flask.
Vendosja e Gunicorn dhe Supervisor
Në këtë hap, ju do të konfiguroni aplikacionin tuaj Flask me Gunicorn dhe Supervisord. Kjo ju lejon të ekzekutoni dhe menaxhoni aplikacionin tuaj Python të menaxhueshëm dhe të kontrollueshëm nëpërmjet procesit Mbikëqyrës.
Krijoni një skedar të ri Python uwsgi.py brenda të njëjtës drejtori të aplikacionit tuaj Flask. Në këtë shembull, drejtoria duhet të jetë /var/www/myflask.
nano wsgi.py
Shtoni skriptin e mëposhtëm Python në skedar.
# import myflask Flask application
from myflask import app
if __name__ == "__main__":
app.run(debug=True)
Ruani skedarin dhe dilni nga redaktori kur të keni mbaruar.
Tani, ekzekutoni komandën e mëposhtme gunicorn për të nisur aplikacionin Flask dhe për të verifikuar konfigurimet e Gunicorn. Aplikacioni tani duhet të funksionojë nën Gunicron me portin 8000.
gunicorn -w 4 --bind 0.0.0.0:8000 wsgi:app
Më poshtë është dalja e komandës Gunicorn.
Më pas, hapni shfletuesin tuaj të internetit dhe vizitoni adresën IP të serverit të ndjekur nga porti 8000 (d.m.th.: http://192.168.5.100:8000/). Ju duhet të shihni faqen index.html të aplikacionit tuaj Flask.
Në këtë pikë, aplikacioni juaj Flask po funksionon me Gunicorn pa asnjë gabim. Tani mund të ktheheni në terminalin tuaj dhe të shtypni Ctrl+c për të përfunduar procesin e gunicorn dhe për të filluar konfigurimin e menaxherit të procesit Mbikëqyrës.
Krijo një konfigurim të ri skedari Supervisor INI për aplikacionin Flask /etc/supervisord.d/flaskapp.ini nëpërmjet komandës nano të mëposhtme. Konfigurimi duhet të ruhet në drejtorinë /etc/supervisord.d.
sudo nano /etc/supervisord.d/flaskapp.ini
Shtoni konfigurimin e mëposhtëm në skedar. Dhe sigurohuni që të ndryshoni shtegun e detajeve të aplikacioneve tuaja, përdoruesin dhe grupin, dhe rrugën e regjistrit.
Me këtë konfigurim, aplikacioni juaj Flask do të funksionojë nën folenë UNIX që do të krijohet nga Gunicorn. Kjo fole unix do të përdoret gjithashtu për të bashkëvepruar me përfaqësuesin e kundërt Nginx.
[program:myflask]
command=/bin/bash -c 'source /var/www/myflask/myenv/bin/activate; gunicorn -w 3 --bind unix:/var/www/myflask/ipc.sock wsgi:app'
directory=/var/www/myflask
user=alice
group=www-data
autostart=true
autorestart=true
stdout_logfile=/var/www/myflask/myflask.log
stderr_logfile=/var/www/myflask/error.log
Ruani skedarin dhe dilni nga redaktori kur të keni mbaruar.
Tani, ekzekutoni komandën e mëposhtme systemctl më poshtë për të rifilluar shërbimin Mbikëqyrës dhe për të aplikuar ndryshime të reja. Më pas, verifikoni statusin e mbikëqyrësit dhe sigurohuni që shërbimi të funksionojë.
sudo systemctl restart supervisord
sudo systemctl status supervisord
Në pamjen e mëposhtme të ekranit, mund të shihni se Mbikëqyrësi po funksionon me një konfigurim të ri shtesë për aplikacionin Flask.
Së fundmi, tani mund të verifikoni procesin e aplikimit tuaj Flask nëpërmjet komandës supervisorctl më poshtë. Ju duhet të shihni se ka një proces të quajtur myflask me statusin OK.
sudo supervisorctl status
Konfigurimi i Nginx Reverse Proxy
Në këtë hap, do të mësoni se si të konfiguroni Nginx si një përfaqësues të kundërt për aplikacionin Flask që funksionon nën menaxherin e procesit Supervisord. Ju do të krijoni një bllok të ri të serverit Nginx për përfaqësuesin e kundërt dhe duke përdorur emrin e domenit lokal për aplikacionin Flask.
Krijo një konfigurim të ri të bllokut të serverit Nginx /etc/nginx/conf.d/flaskapp.conf duke përdorur nano-redaktorin e mëposhtëm.
sudo nano /etc/nginx/conf.d/flaskapp.conf
Shtoni konfigurimin e mëposhtëm në skedar. Dhe sigurohuni që të ndryshoni emrin e domenit www.myflask.local me domenin tuaj lokal të zhvillimit.
server {
listen 80;
server_name www.myflask.local;
location / {
include uwsgi_params;
proxy_pass http://unix:/var/www/myflask/ipc.sock;
}
}
Ruani skedarin dhe dilni nga redaktori kur të keni mbaruar.
Më pas, verifikoni konfigurimin Nginx për t'u siguruar që keni konfigurimin e duhur. Më pas, rinisni shërbimin Nginx për të aplikuar ndryshime të reja.
sudo nginx -t
sudo systemctl restart nginx
Në këtë pikë, aplikacioni juaj Flask tani është i aksesueshëm nëpërmjet përfaqësuesit të kundërt Nginx që funksionon në portën e paracaktuar HTTP.
Tani në kompjuterin tuaj lokal, modifikoni skedarin /etc/hosts duke përdorur redaktuesin nano.
sudo nano /etc/hosts
Përcaktoni adresën IP të makinës Ubuntu me emrin e domain \www.myflask.local\ si më poshtë.
192.168.5.28 www.myflask.local
Ruani dhe mbyllni skedarin.
Tani hapni shfletuesin tuaj të internetit dhe futni emrin e domenit të projektit Flask (p.sh. http://www.myflask.local) në shiritin e adresave. Dhe ju duhet të merrni faqen e indeksit të projektit tuaj Python Flask.
konkluzioni
urime! Ju keni instaluar me sukses kornizën në internet Python Flask me Gunicorn dhe Nginx në serverin Rocky Linux. Ju keni mësuar gjithashtu se si të krijoni projektin e parë Python Flask, të konfiguroni një mjedis virtual Python dhe të vendosni menaxhimin e procesit Supervisord për projektin Flask.